Information apparatus for universal data output

ABSTRACT

An information apparatus for managing outputting of content to an output device includes a communication unit for communicating with the output device, a user interface for interacting with a user. The information apparatus establishes a communication channel with the output device and receives over the communication channel one or more components associated with the output device enabling the content to be rendered by the output device. The information apparatus conforms the content into one or more output images with the components and generates an intermediate output data including the output images, and delivers the intermediate output data to the output device for rendering.

CROSS REFERENCE TO RELATED APPLICATION

[0001] This application claims benefit of Provisional Application No.60/262,764 filed Jan. 19, 2001, the entire disclosure of which is herebyincorporated by reference herein for all purposes.

TECHNICAL FIELD OF THE INVENTION

[0002] Present invention relates to providing content to an outputdevice and, in particular, to providing universal output in which aninformation apparatus can pervasively output content to an output devicewithout the need to install a dedicated device dependent driver orapplications for each output device.

BACKGROUND OF THE INVENTION

[0003] The present invention relates to universal data output and, inparticular, to providing a new data output method and a new raster imageprocess for information apparatuses and output devices.

[0004] As described herein, information apparatuses refer generally tocomputing devices, which include both stationary computers and mobilecomputing devices (pervasive devices). Examples of such informationapparatuses include, without limitation, desktop computers, laptopcomputers, networked computers, palmtop computers (hand-held computers),personal digital assistants (PDAs), Internet enabled mobile phones,smart phones, pagers, digital capturing devices (e.g., digital camerasand video cameras), Internet appliances, e-books, information pads, anddigital or web pads. Output devices may include, without limitation, faxmachines, printers, copiers, image and/or video display devices (e.g.,televisions, monitors and projectors), and audio output devices.

[0005] For simplicity and convenience, hereafter, the followingdescriptions may refer to an output device as a printer and an outputprocess as printing. However, it should be understood that the termprinter and printing used in the discussion of present invention referto one embodiment used as a specific example to simplify the descriptionof the invention. The references to printer and printing used here areintended to be applied or extended to the larger scope and definition ofoutput devices and should not be construed as restricting the scope andpractice of present invention.

[0006] Fueled by an ever-increasing bandwidth, processing power,wireless mobile devices, and wireless software applications, millions ofusers are or will be creating, downloading, and transmitting content andinformation using their pervasive or mobile computing devices. As aresult, there is a need to allow users to conveniently output contentand information from their pervasive computing devices to any outputdevice. As an example, people need to directly and conveniently outputfrom their pervasive information apparatus, without depending onsynchronizing with a stationary computer (e.g., desktop personalcomputer) for printing.

[0007] To illustrate, a mobile worker at an airport receiving e-mail inhis hand-held computer may want to walk up to a nearby printer or faxmachine to have his e-mail printed. In addition, the mobile worker mayalso want to print a copy of his to-do list, appointment book, businesscard, and his flight schedule from his mobile device. As anotherexample, a user visiting an e-commerce site using his mobile device maywant to print out transaction confirmation. In still another example, auser who takes a picture with a digital camera may want to easily printit out to a nearby printer. In any of the above cases, the mobile usermay want to simply walk up to a printer and conveniently print a file(word processing document, PDF, HTML etc) that is stored on the mobiledevice or downloaded from a network (e.g., Internet, corporate network).

[0008] Conventionally, an output device (e.g., a printer) is connectedto an information apparatus via a wired connection such as a cable line.A wireless connection is also possible by using, for example, radiocommunication or infrared communication. Regardless of wired or wirelessconnection, a user must first install in the information apparatus anoutput device driver (e.g., printer driver in the case the output deviceis a printer) corresponding to a particular output device model andmake. Using a device-dependent or specific driver, the informationapparatus may process output content or digital document into a specificoutput device's input requirements (e.g., printer input requirements).The output device's input requirements correspond to the type of inputthat the output device (e.g., a printer) understands. For example, aprinter's input requirement may include printer specific input format(e.g., one or more of an image, graphics or text format or language).Therefore, an output data (or print data in the case the output deviceis a printer) herein refers to data that is acceptable for input to anassociated output device. Examples of input requirements may include,without limitation, audio format, video format, file format, dataformat, encoding, language (e.g., page description language, markuplanguage etc), instructions, protocols or data that can be understood orused by a particular output device make and model.

[0009] Input requirements may be based on proprietary or publishedstandards or a combination of the two. An output device's inputrequirements are, therefore, in general, device dependent. Differentoutput device models may have their own input requirements specified,designed or adopted by the output device manufacturer (e.g., the printermanufacturer) according to a specification for optimal operation.Consequently, different output devices usually require use of specificoutput device drivers (e.g., printer drivers) for accurate output (e.g.,printing). Sometimes, instead of using a device driver (e.g., printerdriver), the device driving feature may be included as part of anapplication software.

[0010] Installation of a device driver (e.g., printer driver) orapplication may be accomplished by, for example, manual installationusing a CD or floppy disk supplied by the printer manufacturer. Oralternatively, a user may be able to download a particular driver orapplication from a network. For a home or office user, this installationprocess may take anywhere from several minutes to several hoursdepending on the type of driver and user's sophistication level withcomputing devices and networks. Even with plug-and-play driverinstallation, the user is still required to execute a multi-step processfor each printer or output device.

[0011] This installation and configuration process adds a degree ofcomplexity and work to end-users who may otherwise spend their timedoing other productive or enjoyable work. Moreover, many unsophisticatedusers may be discouraged from adding new peripherals (e.g., printers,scanners, etc.) to their home computers or networks to avoid theinconvenience of installation and configuration. It is thereforedesirable that an information apparatus can output to more than oneoutput device without the inconvenience of installing multiple dedicateddevice dependent drivers.

[0012] In addition, conventional output or printing methods may posesignificantly higher challenges and difficulties for mobile device usersthan for home and office users. The requirement for pre-installation ofa device-dependent driver diminishes the benefit and concept of mobile(pervasive) computing and output. For example, a mobile user may want toprint or output e-mail, PowerPoint® presentation documents, web pages,or other documents at an airport, gas station, convenience store, kiosk,hotel, conference room, office, home, etc. It is highly unlikely thatthe user would find at any of these locations a printer of the same makeand model as is at the user's base station. As a consequence, under theconventional printing method, the user would have to install andconfigure a printer driver each time at each such remote location beforeprinting. It is usually not a viable option given the hundreds, or eventhousands of printer models in use, and the limited storage, memoryspace, and processing power of the information apparatus.

[0013] Moreover, the user may not want to be bothered with looking for adriver or downloading it and installing it just to print out or displayone page of email at the airport. This is certainly an undesirable anddiscouraging process to promote pervasive or mobile computing.Therefore, a more convenient printing method is needed in support of thepervasive computing paradigm where a user can simply walk up to anoutput device (e.g., printer or display device) and easily output adigital document without having to install or pre-install a particularoutput device driver (e.g., printer driver).

[0014] Another challenge for mobile users is that many mobileinformation apparatuses have limited memory space, processing capacityand power. These limitations are more apparent for small and low-costmobile devices including, for example, PDAs, mobile phones, screenphones, pagers, e-books, Internet Pads, Internet appliances etc. Limitedmemory space poses difficulties in installing and running large orcomplex printer or device drivers, not to mention multiple drivers for avariety of printers and output devices. Slow processing speed andlimited power supply create difficulties driving an output device. Forexample, processing or converting a digital document into output data bya small mobile information apparatus may be so slow that it is notsuitable for productive output. Intensive processing may also drain orconsume power or battery resources. Therefore, a method is needed sothat a small mobile device, with limited processing capabilities, canstill reasonably output content to various output devices.

[0015] To output or render content (e.g. digital document) to an outputdevice, a raster image processing (RIP) operation on the content isusually required. RIP operation can be computationally intensive and mayinclude (1) a rasterization operation, (2) a color space conversion, and(3) a halftoning operation. RIP may also include other operations suchas scaling, segmentation, color matching, color correction, GCR (Greycomponent replacement), Black generation, image enhancementcompression/decompression, encoding/decoding, encryption/decryption GCR,image enhancement among others.

[0016] Rasterization operation in RIP involves converting objects anddescriptions (e.g. graphics, text etc) included in the content into animage form suitable for output. Rasterization may include additionaloperations such as scaling and interpolation operations for matching aspecific output size and resolution. Color space conversion in RIPincludes converting an input color space description into a suitablecolor space required for rendering at an output device (e.g. RGB to CMYKconversion). Digital halftoning is an imaging technique for renderingcontinuous tone images using fewer luminance and chrominance levels.Halftoning operations such as error diffusion can be computationallyintensive and are included when the output device's bit depth (e.g. bitsper pixel) is smaller than the input raster image bit depth.

[0017] Conventionally, RIP operations are included either in aninformation apparatus, or as part of an output device or output system(e.g. in a printer controller). FIG. 1A illustrates a flow diagram of aconventional data output method 102 in which RIP 110 is implemented inthe information apparatus. Output devices that do not include a printercontroller to perform complex RIP operations, such as a lower-cost,lower speed inkjet printer, normally employ data output method 102. Indata output method 102, an information apparatus obtains content (e.g. adigital document) in step 100 for rendering or output at an outputdevice. The information apparatus may includes an application (e.g.device driver), which implements RIP operation 110. The informationapparatus generates an output data in step 120 and transmits the outputdata to the output device in step 130 for rendering. The output datarelating to the content is in an acceptable form (e.g. in an appropriateoutput size and resolution) to the output engine (e.g. display engine,printer engine etc.) included in the output device. The output data in aconventional output method 102 is usually device dependent.

[0018] One drawback for the data output method 102 of FIG. 1A is thatthe information apparatus performs most if not the entire raster imageprocessing operations 110 required for output. The RIP operations mayrequire intensive computation. Many information apparatus such as mobileinformation device might have insufficient computing power and/or memoryto carry out at an acceptable speed the RIP operations 110 required inan output process.

[0019] Another drawback for the conventional data output method 102 ofFIG. 1A is that the generated output data is device dependent andtherefore is typically not very portable to other output devices. As aresult, the information apparatus may need to install multipleapplications or device drivers for multiple output devices, which mayfurther complicate its feasibility for use in information apparatuseswith limited memory, storage and processing power.

[0020]FIG. 1B illustrates a flow diagram of another conventional dataoutput method 104 in which the RIP is implemented in an output device.An example of an output device that implements process 104 is ahigh-speed laser printer which includes a printer controller forperforming RIP operations and an output engine (e.g. printer engine) forrendering content. Printer controller may be internally installed orexternally connected to an output device (printer in this example). Indata output method 104, an information apparatus obtains content foroutput in step 100 and generates in step 160 an output data or printdata for transmitting to the output device in step 170. Print dataincludes information related to the content and is usually encoded in apage description language (PDL) such as PostScript and PCL etc. In step180, the printer receives the output data or print data (in a PDL). Instep 190, a printer controller included in the printer interprets thePDL, performs RIP operations, and generates a printer-engine print datathat is in a form acceptable to the printer engine (e.g. a raster imagein an appropriate output size, bit depth, color space and resolution).In step 150 the printer engine renders the content with theprinter-engine print data.

[0021] It will be understood that a reference to print data or outputdata including a language, such as PDL, should be interpreted as meaningthat the print data or output data is encoded using that language.Correspondingly, a reference to a data output process generating alanguage, such as PDL, should be interpreted as meaning that the dataoutput process encodes data using that language.

[0022] There are many drawbacks in the conventional data output method104 shown in FIG. 1B. These drawbacks are especially apparent for mobilecomputing devices with limited processing power and memory. One suchdrawback is that the output data or print data, which include a pagedescription language (PDL) such as PostScript or PCL, can be verycomplex. Generating complex PDL may increase memory and processingrequirements for an information apparatus. Furthermore, interpreting,decoding and then raster image processing complex PDL can increasecomputation, decrease printing speed, and increase the cost of theoutput device or its printer controller.

[0023] Another drawback is that the output data that includes PDL cancreates a very large file size that would increase memory and storagerequirements for the information apparatus, the output device and/or theprinter controller etc. Large file size may also increase the bandwidthrequired in the communication link between the information apparatus andthe output device.

[0024] Finally, to rasterize text in an output device, a printercontroller may need to include multiple fonts. When a special font orinternational characters is not included or missing in the printercontroller, the rendering or output can potentially become inaccurate orinconsistent.

SUMMARY OF THE INVENTION

[0025] Accordingly, this invention provides a convenient universal dataoutput method in which an information apparatus and an output device orsystem share the raster image processing operations. Moreover, the newdata output method eliminates the need to install a plurality ofdevice-dependent dedicated drivers or applications in the informationapparatus in order to output to a plurality of output devices.

[0026] In accordance with present invention, an electronic system andmethod of pervasive and universal output allow an information apparatusto output content conveniently to virtually any output device. Theinformation apparatus may be equipped with a central processing unit,input/output control unit, storage unit, memory unit, and wired orwireless communication unit or adapters. The information apparatuspreferably includes a client application that may be implemented as asoftware application, a helper application, or a device driver (aprinter driver in case of a printer). The client application may includemanagement and control capabilities with hardware and softwarecomponents including, for example, one or more communication chipsetsresiding in its host information apparatus.

[0027] The client application in the information apparatus may becapable of communicating with, managing and synchronizing data orsoftware components with an output device equipped with an outputcontroller of present invention.

[0028] Rendering content in an output device refers to printing an imageof the content onto an substrate in the case of a printing device;displaying an image of the content in the case of a displaying device;playing an audio representation of the content in a voice or soundoutput device or system.

[0029] An output controller may be a circuit board, card or softwarecomponents residing in an output device. Alternatively, the outputcontroller may be connected externally to an output device as anexternal component or “box.” The output controller may be implementedwith one or more combinations of embedded processor, software, firmware,ASIC, DSP, FPGA, system on a chip, special chipsets, among others. Inanother embodiment, the functionality of the output controller may beprovided by application software running on a PC, workstation or serverconnected externally to an output device.

[0030] In conventional data output method 102 as described withreference to FIG. 1A, an information apparatus transmits output data toan output device for rendering. Output data corresponds to contentintended for output and is mostly raster image processed (RIPed) andtherefore is device dependent because raster image processing is atypical device dependent operation. Output data may be encoded orcompressed with one or more compression or encoding techniques. Inpresent invention, an information apparatus generates an intermediateoutput data for transmitting to an output device. The intermediateoutput data includes a rasterized image corresponding to the content;however, device dependent image processing operations of a RIP (e.g.color matching and halftoning) have not been performed. As a result, anintermediate output data is more device independent and is more portablethan the output data generated by output method with reference to FIG.1A.

[0031] In one implementation of this invention, the intermediate outputdata includes MRC (Mixed raster content) format, encoding andcompression techniques, which further provides improved image qualityand compression ratio compared to conventional image encoding andcompression techniques.

[0032] In an example of raster image process and data output method ofthe present invention, a client application such as a printer driver isincluded in an information apparatus and performs part of raster imageprocessing operation such as rasterization on the content. Theinformation apparatus generates an intermediate output data thatincludes an output image corresponding to the content and sends theintermediate output data to an output device or an output system forrendering. An output controller application or component included in theoutput device or output system implements the remaining part of theraster image processing operations such as digital halftoning, colorcorrection among others.

[0033] Like conventional raster image processing methods, this inventionprovides a more balanced distribution of the raster image processingcomputational load between the Information apparatus and the outputdevice or the output system. Computational intensive image processingoperations such as digital halftoning and color space conversions can beimplemented in the output device or output system. Consequently, thisnew raster image processing method reduces the processing and memoryrequirements for the information apparatus when compared to conventionaldata output methods described with reference to FIG. 1A in which theentire raster image process is implemented in the information apparatus.Additionally, in this invention, a client application or device driverincluded in the information apparatus, which performs part of the rasterimage processing operation, can have a smaller size compared to aconventional output application included in the information apparatus,which performs raster image processing operation.

[0034] In another implementation, the present invention provides aninformation apparatus with output capability that is more universallyaccepted by a plurality of output devices. The information apparatus,which includes a client application, generates an intermediate outputdata that may include device independent attributes. An outputcontroller includes components to interpret and process the intermediateoutput data. The information apparatus can output content to differentoutput devices or output systems that include the output controller evenwhen those output devices are of different brand, make, model and withdifferent output engine and input data requirements. Unlike conventionaloutput methods, a user does not need to preinstall in the informationapparatus multiple dedicated device dependent drivers or applicationsfor each output device.

[0035] The combination of a smaller-sized client application, a reducedcomputational requirement in the information apparatus, and a moreuniversal data output method acceptable for rendering at a plurality ofoutput devices enable mobile devices with less memory space andprocessing capabilities to implement data output functions whichotherwise would be difficulty to implement with conventional outputmethods.

[0036] In addition, this invention can reduce the cost of an outputdevice or an output system compared to conventional output methods 104that include a page description language (PDL) printer controller. Inthe present invention, an information apparatus generates and sends anintermediate output data to an output device or system. The intermediateoutput data in one preferred embodiment includes a rasterized outputimage corresponding to the content intended for output. An outputcontroller included in an output device or an output system decodes andprocesses the intermediate output data for output, without performingcomplex interpretation and rasterization compared to conventionalmethods described in process 104. In comparison, the conventional dataoutput process 104 generates complex PDL and sends this PDL from aninformation apparatus to an output device that includes a printercontroller (e.g. a PostScript controller or a PCL5 controller amongothers). Interpretation and raster image processing of a PDL have muchhigher computational requirements compared to decoding and processingthe intermediate output data of this invention that include rasterizedoutput image or images. Implementing a conventional printer controllerwith, for example, PDL increases component cost (e.g. memories,storages, ICs, software and processors etc.) when compared to using theoutput controller included in the data output method of this presentinvention.

[0037] Furthermore, an output data that includes PDL can create a largefile size compared to an intermediate output data that includesrasterized output image. The data output method for this inventioncomparatively transmits a smaller output data from an informationapparatus to an output device. Smaller output data size can speed uptransmission, lower communication bandwidth, and reduce memoryrequirements. Finally, this invention can provide a convenient method torender content at an output device with or without connection to astatic network. In conventional network printing, both informationapparatus and output device must be connected to a static network. Inthis invention, through local communication and synchronization betweenan information apparatus and an output device, installation of hardwareand software to maintain static network connectivity may not benecessary to enable the rendering of content to an output device.

[0038] According to the several aspects of the present invention thereis provided the subject matter defined in the appended independentclaims.

[0039] Additional objects and advantages of the present invention willbe apparent from the detailed description of the preferred embodimentthereof, which proceeds with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0040]FIG. 1A is a flow diagram of a conventional data output method andits corresponding raster image process in accordance with prior art.

[0041]FIG. 1B is a flow diagram of a second conventional data outputmethod and its corresponding raster image process for an output devicethat includes a conventional printer controller in accordance with priorart.

[0042]FIGS. 2A and 2B are block diagrams illustrating components of anoperating environment that can implement the process and apparatus ofthe present invention.

[0043]FIG. 3A is a schematic block diagram illustratinghardware/software components of an information apparatus implementationin accordance with present invention. The information apparatus includesan operating system.

[0044]FIG. 3A is a second schematic block diagram illustratinghardware/software components of an information apparatus implementationin accordance with present invention.

[0045]FIG. 4A is a block diagram of a conventional printing system orprinter with a conventional printer controller.

[0046]FIG. 4B is a block diagram of a second conventional output systemor output device.

[0047]FIG. 5A is a schematic block diagram of a printing system orprinter with a conventional printer controller and an output controllerin accordance with present invention.

[0048]FIG. 5B is a schematic block diagram of a second output system oroutput device that includes an output controller in accordance withpresent invention.

[0049]FIG. 6A is a schematic block diagram illustratinghardware/software components of an output controller in accordance withpresent invention. The output controller includes an operating system.

[0050]FIG. 6B is a second schematic block diagram illustratinghardware/software components of an output controller in accordance withpresent invention. The output controller does not include an operatingsystem.

[0051]FIG. 6C is a third schematic block diagram illustratinghardware/software components of an output controller in accordance withpresent invention. The output controller combines the functionality of aprinter controller and an output controller of present invention.

[0052] FIGS. 7A-7F illustrate various configurations and implementationsof output controller with respect to an output device such as a printer.

[0053]FIG. 8A is a block diagram illustrating an exemplaryimplementation of hardware/software components of wireless communicationunit.

[0054]FIG. 8B is block diagram illustrating a second exemplaryimplementation of hardware/software components of wireless communicationunit.

[0055]FIG. 9 is a flow diagram of a universal data output method and itscorresponding raster imaging process of the present invention.

[0056]FIG. 10 is a block diagram of a universal data output method ofthe present invention with respect to the components, system andapparatus described with reference to FIG. 2.

[0057]FIG. 11 is a flow diagram illustrating one way of implementing adiscovery process optionally included in the output process of FIG. 10.

[0058]FIGS. 12A and 12B are flow diagrams of exemplary clientapplication process included in the output process of FIG. 10.

[0059]FIGS. 13A and 13B are flow diagrams of exemplary output device oroutput system process included in the output process of FIG. 10.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0060] Sets forth below are definitions of terms that are used indescribing implementations of the present invention. These definitionsare provided to facilitate understanding and illustration ofimplementations of the present invention and should in no way beconstrued as limiting the scope of the invention to a particularexample, class, or category.

[0061] Output Device Profile (or Object)

[0062] An output device profile (or object) includes software and dataentity, which encapsulates within itself both data and attributesdescribing an output device and instructions for operating that data andattributes. An output device profile may reside in different hardwareenvironments or platforms or applications, and may be transported in theform of a file, a message, a software object or component among otherforms and techniques. For simplicity of discussion, a profile or objectmay also include, for example, the concept of software components thatmay have varying granularity and can consist of one class, a compositeof classes, or an entire application.

[0063] The term profile or object used herein is not limited to softwareor data as its media. Any entity containing information, descriptions,attributes, data, instructions etc. in any computer-readable form ormedium such as hardware, software, files based on or including voice,text, graphics, image, or video information, electronic signals inanalog or digital form, etc., are all valid forms of profile and objectdefinition.

[0064] A profile or object may also contain in one of its fields orattributes a reference or pointer to another profile or object, or areference or pointer to data and or content. A reference to a profile orobject may include one or more, or a combination of pointers,identifiers, names, paths, addresses or any descriptions relating to alocation where an object, profile, data, or content can be found.

[0065] An output device profile may contain one or more attributes thatmay identify and describe, for example, the capabilities andfunctionalities of a particular output device such as a printer. Anoutput device profile may be stored in the memory component of an outputdevice, an information apparatus or in a network node. A network nodeincludes any device, server or storage location that is connected to thenetwork. As described below in greater detail, an information apparatusrequesting output service may communicate with an output device. Duringsuch local service negotiation, at least a partial output device profilemay be uploaded to the information apparatus from the output device. Byobtaining the output device profile (or printer profile in the case of aprinter), the information apparatus may learn about the capability,compatibility, identification, and service provided by the outputdevice.

[0066] As an example, an output device profile may contain one or moreof the following fields and or attribute descriptions. Each of followingfields may be optional, and furthermore, each of the following fields orattributes may or may not exist in a particular implementation (e.g.,may be empty or NULL):

[0067] Identification of an output device (e.g., brand, model,registration, IP address etc.)

[0068] Services and feature sets provided by an output device (e.g.,color or grayscale output, laser or inkjet, duplex, output quality,price per page, quality of service, etc.)

[0069] Type of input languages, formats, output data and/or inputrequirements (e.g., PostScript, PCL, XML, RTL, etc.) supported by anoutput device.

[0070] Device specific or dependent parameters and information (e.g.,communication protocols, color space, color management methods andrendering intents, resolution, halftoning methods, dpi (dots-per-inch),bit depth, page size, printing speed, number of independent colorschannels or ink etc.)

[0071] Data and tables needed for image processing such as color table,halftone table, scale factor, encoding/decoding parameters and methods,compression and decompression parameters and method etc.

[0072] Another profile which contain parameters and information aboutthe output device and its service (e.g. color profiles, halftoningprofiles, communication profiles, rasterization profiles, quality ofservice etc.).

[0073] Payment information on a plurality of services provided by anoutput device.

[0074] Information or security requirements and type of authenticationan output device supports.

[0075] Date and version of the output device profile, history of itsmodification and updates.

[0076] Software components containing algorithms or instructions ordata, which may be uploaded to run in an information apparatus. Forexample, a graphical user interface (GUI) software component may beuploaded to an information apparatus. The software component may beincorporated into or launched in the information apparatus by a clientapplication of present invention to capture a user's preferences (e.g.,print quality, page layout, number of copies, number of cards per page,etc.). In another example, software components may include methods,instructions or executables for compression/decompression,encoding/decoding, color matching or correction, segmentation, scaling,halftoning, encryption/decryption among others.

[0077] Pointer or reference to one or more output device parameters,including one or more of the above described output device profile orobject fields and or attribute descriptions. For example, a moreup-to-date or original version of output device parameters may sometimesbe stored in a network node (any device, server or storage location thatis connected to the network), or within the information apparatus whereit can be obtained by the client application. An output device profilemay include pointer or pointers to these output device parameters.

[0078] Content (or Data Content, Digital Content, Output Content)

[0079] Content (or data content, digital content, output content) is thedata intended for output, which may include texts, graphics, images,forms, videos, audio among other content types. Content may include thedata itself or a reference to that data. Content may be in any format,language, encoding or combination, and it can be in a format, languageor encoding that is partially or totally proprietary. A digital documentis an example of content that may include attributes and fields thatdescribe the digital document itself and or reference or references tothe digital document or documents. Examples of a digital document may beany one or combination of file types: HTML, VHTML, PostScript, PCL, XML,PDF, MS Word, PowerPoint, JPEG, MPEG, GIF, PNG, WML, VWML, CHTML, HDML,ASCII, 2-byte international coded characters, etc. Content may be usedinterchangeably with the term data content, output content or digitalcontent in the descriptions of present invention.

[0080] Intermediate Output Data

[0081] Output data (or print data in case of a printer) is theelectronic data sent from an information apparatus to an output device.Output data is related to the content intended for output and may beencoded in a variety of formats and languages (e.g. postscript, PCL,XML), which may include compressed or encrypted data. Some output devicemanufacturers may also include in the output data (or print data) acombination of proprietary or non-proprietary languages, formats,encoding, compression, encryption etc.

[0082] Intermediate output data is the output data of the presentinvention, and it includes the broader definition of an output file ordata generated by an information apparatus, or a client application ordevice driver included in the information apparatus. An intermediateoutput data may contain text, vector graphics, images, video, audio,symbols, forms or combination and can be encoded with one or more of apage description language, a markup language, a graphics format, animaging format, a metafile among others. An intermediate output data mayalso contain instructions (e.g. output preferences) and descriptions(e.g. data layout) among others. Part or all of an intermediate outputdata may be compressed, encrypted or tagged.

[0083] In a preferred embodiment of this invention, intermediate outputdata contains rasterized image data. For example, vector graphics andtext information or objects that are not in image form included incontent can be rasterized or conformed into image data in an informationapparatus and included in an intermediate output data. Device dependentimage processing operations of a RIP such as digital halftoning andcolor space conversions can be implemented at an output device or anoutput system.

[0084] The intermediate output data can be device dependent or deviceindependent. In one implementation, the rasterized output image isdevice dependent if the rasterization parameters used, such asresolution, scale factor, bit depth, output size and or color space aredevice dependent. In another implementation of this invention, therasterized image may be device independent if the rasterizationparameters used are device independent. Rasterization parameter canbecome device independent when those parameters include a set ofpredetermined or predefined rasterization parameters based on a standardor a specification. With predefined or device independent rasterizationparameters, a client application of present invention can rasterize atleast a portion of the content and generate a device independent imageor images included in the intermediate output data. By doing so, theintermediate output data may become device independent and therefore,become universally acceptable with output devices that have beenpre-configured to accept the intermediate output data.

[0085] One advantage of rasterizing or converting text and graphicsinformation into image data at the information apparatus is that theoutput device or printer controller no longer needs to perform complexrasterization operation nor do they need to include multiple fonts.Therefore, employing the intermediate output data and the data outputmethod described herein could potentially reduce the cost and complexityof an output controller, printer controller and or output device.

[0086] One form of image data encoding is known as mixed raster content,or MRC. Typically, an image stored in MRC includes more than one imageor bitmap layers. In MRC, an image can be segmented in different layersbased on segmentation criteria such as background and foreground,luminance and chrominance among others. For example, an MRC may includethree layers with a background layer, a foreground layer and a toggle orselector layer. The three layers are coextensive and may includedifferent resolution, encoding and compression. The foreground andbackground layers may each contain additional layers, depending on themanner in which the respective part of the image is segmented based onthe segmentation criteria, component or channels of a color model, imageencoding representation (HLS, RGB, CMYK, YCC, LAB etc) among others. Thetoggle layer may designate, for each point, whether the foreground orbackground layer is effective. Each layer in a MRC can have differentbit depths, resolution, color space, which allow, for example, theforeground layer to be compressed differently from the background layer.The MRC form of image data has previously been used to minimize storagerequirements. Further, an MRC format has been proposed for use in colorimage fax transmission.

[0087] In one embodiment of present invention, the intermediate outputdata includes one or more rasterized output images that employ MRCformat, encoding and or related compression method. In thisimplementation, different layers in the output image can have differentresolutions and may include different compression techniques. Differentinformation such as chrominance and luminance and or foreground andbackground information in the original content (e.g. digital document)can be segmented and compressed with different compression or encodingtechniques. Segmented elements or object information in the originalcontent can also be stored in different image layers and with differentresolution. Therefore, with MRC, there is opportunity to reduce outputdata file size, retain greater image information, increase compressionratio, and improve image quality when compared to other conventionalimage encoding and compression techniques. Implementations ofrasterization, raster image processing and intermediate output data thatinclude MRC encoding in the present invention are described in moredetail below.

[0088] Rasterization

[0089] Rasterization is an operation by which graphics and text in adigital document are converted to image data. For image data included inthe digital document, rasterization may include scaling andinterpolation. The rasterization operation is characterized byrasterization parameters including, among others bit depth andresolution. A given rasterization operation may be characterized byseveral more rasterization parameters, including output size, colorspace, color channels etc. Values of one or more of the rasterizationparameters employed in a rasterization operation may be specified bydefault; values of one or more of the rasterization parameters may besupplied to the information apparatus as components of a rasterizationvector. In a given application, the rasterization vector may specify avalue of only one rasterization parameter, default values being employedfor other rasterization parameters used in the rasterization operation.In another application the rasterization vector may specify values ofmore than one, but less than all, rasterization parameters, defaultvalues being employed for at least one other rasterization parameterused in the rasterization operation. And in yet another application therasterization vector may specify values of all the rasterizationparameters used in the rasterization operation.

[0090]FIGS. 2A and 2B are block diagrams illustrating components of anoperating environment that can implement the process and apparatus ofpresent invention. FIG. 2A shows an electronic system which includes aninformation apparatus 200 and an output device 220. The output device220 includes an output controller 230. FIG. 2B illustrates a secondimplementation of an electronic system that includes an informationapparatus 200 and an output system 250. The output system 250 includesan output device 220 and an output controller 230 which may beexternally connected to, or otherwise associated with, the output device220 in the output system 250.

[0091] Information apparatus 200 is a computing device with processingcapability. In one embodiment, information apparatus 200 may be a mobilecomputing device such as palmtop computer, handheld device, laptopcomputer, personal digital assistant (PDA), smart phone, screen phone,e-book, Internet pad, communication pad, Internet appliance, pager,digital camera, etc. It is possible that information apparatus 200 mayalso include a static computing device such as a desktop computer,workstation, server, etc.

[0092]FIGS. 3A and 3B are block diagrams illustrating examples ofhardware/software components included in an information apparatus 200 ofpresent invention.

[0093] Information apparatus 200 may contain components such as aprocessing unit 380, a memory unit 370, an optional storage unit 360 andan input/output control unit (e.g. communication manager 330).Information apparatus 200 may include an interface (not shown) forinteraction with users. The interface may be implemented with softwareor hardware or a combination. Examples of such interfaces include,without limitation, one or more of a mouse, a keyboard, atouch-sensitive or non-touch-sensitive screen, push buttons, soft keys,a stylus, a speaker, a microphone, etc.

[0094] Information apparatus 200 typically contains one or more networkcommunication unit 350 that interfaces with other electronic devicessuch as network node (not shown), output device 220, and output system230. The network communication unit may be implemented with hardware(e.g., silicon chipsets, antenna), software (e.g., protocol stacks,applications) or a combination.

[0095] In one embodiment of the present invention, communicationinterface 240 between information apparatus 200 and output device 220 oroutput system 250 is a wireless communication interface such as ashort-range radio interface including those implemented according to theBluetooth or IEEE 802.11 standard. The communication interface may alsobe realized by other standards and/or means of wireless communicationthat may include radio, infrared, cellular, ultrasonic, hydrophonicamong others for accessing one or more network node and/or devices.Wired line connections such as serial or parallel interface, USBinterface and fire wire (IEEE 1394) interface, among others, may also beincluded. Connection to a local network such as an Ethernet or a tokenRing network, among others, may also be implemented in the presentinvention for local communication between information apparatus 200 andoutput device 220. Examples of hardware/software components ofcommunication units 350 that may be used to implement wireless interfacebetween the information apparatus 200 and the output device 220 aredescribed in more detail with reference to FIGS. 8A and 8B below.

[0096] For simplicity, FIG. 3 illustrates one implementation where aninformation apparatus 200 includes one communication unit 350. However,it should be noted that an information apparatus 200 may contain morethan one communication unit 350 in order to support differentinterfaces, protocols, and/or communication standards with differentdevices and/or network nodes. For example, information apparatus 200 maycommunicate with one output device 220 through a Bluetooth standardinterface or through an IEEE 802.11 standard interface whilecommunicating with another output device 220 through a parallel cableinterface. The information apparatus 200 may also be coupled to a wiredor wireless network (e.g. the Internet or corporate network) to send,receive and/or download information.

[0097] Information apparatus 200 may be a dedicated device (e.g., emailterminal, web terminal, digital camera, e-book, web pads, Internetappliances etc.) with functionalities that are pre-configured bymanufacturers. Alternatively, information apparatus 200 may allow usersto install additional hardware components and or application software205 to expand its functionality.

[0098] Information apparatus 200 may contain a plurality of applications205 to implement its feature sets and functionalities. As an example, adocument browsing or editing application may be implemented to help userview and perhaps edit, partially or entirely, digital documents writtenin certain format or language (e.g., page description language, markuplanguage, etc.). Digital documents may be stored locally in theinformation apparatus 200 or in a network node (e.g., in contentserver). An example of a document browsing application is an Internetbrowser such as Internet Explorer, Netscape Navigator, or a WAP browser.Such browsers may retrieve and display content (e.g. digital content)written in mark-up languages such as HTML, WML, XML, CHTML, HDML, amongothers. Other examples of software applications in the informationapparatus 200 may include a document editing software such as MicrosoftWord™ which also allows users to view and or edit digital documents thathave various file extensions (e.g., doc, rtf, html, XML etc.) whetherstored locally in the information apparatus 200 or in a network node.Still, other example of software applications 205 may include imageacquisition and editing software.

[0099] As illustrated previously with reference to FIG. 1, there aremany difficulties in providing output capability to an informationapparatus 200 that has limited memory and processing capability. Toaddress theses difficulties, information apparatus 200 includes a clientapplication 210 that helps provide the universal data output capabilityof the present invention. Client application 210 may include softwareand data that can be executed by the processing unit 380 of informationapparatus 200. Client application 210 may be implemented as astand-alone software application or as a part of or feature of anothersoftware application, or in the form of a device driver, which may beinvoked, shared and used by other application software 205 in theinformation apparatus 200. Client application 210 may also includecomponents to invoke other applications 205 (e.g., a document browsingapplication, editing application, data and/or image acquisitionapplication, a communication manager, a output manager etc.) to providecertain feature sets, as described below. FIG. 3 illustrates aconfiguration where the client application 210 is a separate applicationfrom the other application 205 such as the case when the clientapplication is a device driver; however, it should be noted that theclient application 210 can be combined or being part of the otherapplication not shown in FIG. 3. Client application 210 may be variouslyimplemented in an information apparatus 200 and may run on differentoperating systems or platforms. The client application 210 may also runin an environment with no operating system. For example, FIG. 3Aillustrates an implementation where the information apparatus 200Aincludes an operating system 340A; while FIG. 3B illustrates animplementation where the information apparatus 200B does not include anoperating system.

[0100] Client application 210 includes a rasterization component 310 toconform content into one or more raster output images according to oneor more rasterization parameters; an intermediate output data generatorcomponent 320 that generates and/or encodes intermediate output datathat includes the one or more output images; and a communicationsmanager 330 that manages the communication and interaction with anoutput device 220 or system 250 or output controller 230. Communicationsmanager can be implemented as part of the client application 210 (shownin FIG. 3) or as a separate application (not shown). Components in aclient application can be implemented in software, hardware orcombination. As an example, client application 210 may include orutilize one or more of the following:

[0101] Components or operations to obtain content (e.g. digitaldocument) for output. The client application 210 may obtain a digitaldocument from other applications 205 (e.g. document browsingapplication, content creation and editing application, etc.), or theclient application 210 may provide its own capability for user tobrowse, edit and or select a digital document.

[0102] Components or operations to rasterize content that includes text,graphics and images among others objects or elements into one or moreraster images according to a set of rasterization parameters such asscale factor, output size, bit depth, color space and resolution. Therasterization parameters may be obtained in various ways, for example,from an output device profile uploaded from an output device 220, orstored locally in information apparatus 200, or manually inputted by auser. Alternatively, rasterization parameters may be based on apredefined standard or specification stored in the information apparatus200 as a set of defaults, or hard-coded in the client application 210,or calculated by the client application 210 after communicating with anoutput device 220, output controller 230, and/or a user.

[0103] Components or operations to generate intermediate output datathat includes at least one rasterized output image corresponding to thecontent (e.g. digital document). This process may further include one orcombination of compression, encoding, encryption and color correctionamong others. The intermediate output data may include, for example,images, instructions, documents and or format descriptions, colorprofiles among others.

[0104] Components or operations to transmit the intermediate output datato an output device 220 or system 250 through wired or wirelesscommunication link 240.

[0105] The client application 210 may also optionally include or utilizeone or more of the following components or operations:

[0106] Components or operations to communicate with one or more outputdevices 220 to upload an output device profile.

[0107] Components or operations to communicate directly or indirectly(such as through an operating system or component or object model,messages, file transfer etc.) with other applications 205 residing inthe same information apparatus 200 to obtain objects, data, and orcontent needed, or related to the pervasive output process of presentinvention (e.g. obtain a digital document for printing).

[0108] Components or operations to manage and utilize directly orindirectly functionalities provided by hardware components (e.g.communication unit 350) residing in its host information apparatus 200.

[0109] Components or operations to provide a graphical user interface(GUI) in host information apparatus to interact with user.

[0110] Components or operations to obtain user preferences. For example,a user may directly input his or her preferences through a GUI. A set ofdefault values may also be employed. Default values may be pre-set ormay be obtained by information apparatus 200 as result of communicatingand negotiating with an output device 220 or output controller 230.

[0111] The above functionalities and process of client application 210of present invention are described in further detail in the clientapplication process with reference to FIG. 12.

[0112] Output device 220 is an electronic system capable of outputtingdigital content regardless of whether the output medium is substrate(e.g., paper), display, projection, or sound. A typical example ofoutput device 220 is a printer, which outputs digital documentscontaining text, graphics, image or any combination onto a substrate.Output device 220 may also be a display device capable of displayingstill images or video, such as, without limitation, televisions,monitors, and projectors. Output device 220 can also be a device capableof outputting sound. Any device capable of playing or reading digitalcontent in audio (e.g., music) or data (e.g., text or document) formatsis also a possible output device 220.

[0113] A printer is frequently referred to herein as an example of anoutput device to simplify discussion or as the primary output device 220in a particular implementation. However, it should be recognized thatpresent invention applies also to other output devices 220 such as faxmachines, digital copiers, display screens, monitors, televisions,projectors, voice output devices, among others.

[0114] Rendering content with an output device 220 refers to outputtingthe content on a specific output medium (e.g., papers, display screensetc). For example, rendering content with a printer generates an imageon a substrate; rendering content with a display device generates animage on a screen; and rendering content with an audio output devicegenerates sound.

[0115] A conventional printing system in general includes a raster imageprocessor and a printer engine. A printer engine includes memory buffer,marking engine among other components. The raster image processorconverts content into an image form suitable for printing; the memorybuffer holds the rasterized image ready for printing; and the markingengine transfers colorant to substrate (e.g., paper).

[0116] The raster image processor may be located within an output device(e.g. included in a printer controller 410) or externally implemented(in an information apparatus 200, external controller, servers etc).Raster image processor can be implemented as hardware, software, or acombination (not shown). As an example, raster image processor may beimplemented in a software application or device driver in theinformation apparatus 200. Examples of raster image processingoperations include image and graphics interpretation, rasterization,scaling, segmentation, color space transformation, image enhancement,color correction, halftoning, compression etc.

[0117]FIG. 4A illustrates a block diagram of one conventional printingsystem or printer 400A that includes a printer controller 410 and aprinter engine 420A. The printer controller 410 includes an interpreter402 and a raster image processor 406, and the printer engine 420includes memory buffer 424A and a marking engine 426A.

[0118] Marking engine may use any of a variety of different technologiesto transfer a rasterized image to paper or other media or, in otherwords, to transfer colorant to a substrate. The different marking orprinting technologies that may be used include both impact andnon-impact printing. Examples of impact printing may include dot matrix,teletype, daisywheel, etc. Non-impact printing technologies may includeinkjet, laser, electrostatic, thermal, dye sublimation, etc.

[0119] The marking engine 426 and memory buffer 424 of a printer formits printer engine 420, which may also include additional circuitry andcomponents, such as firmware, software or chips or chipsets for decodingand signal conversion, etc. Input to a printer engine 420 is usually afinal rasterized printer-engine print data generated by a raster imageprocessor 406. Such input is usually device dependent and printer orprinter engine specific. The printer engine 420 may take this devicedependent input and generate or render output pages (e.g. with ink on asubstrate).

[0120] When a raster image processor is located inside an output device220, it is usually included in a printer controller 410 (as shown inFIG. 4A). A printer controller 410 may interpret, rasterize, and convertinput print data in the form of a page description language (e.g.,PostScript, PCL), markup language (e.g., XML, HTML) or other specialdocument format or language (e.g. PDF, EMF) into printer-engine printdata which is a final format, language or instruction that printerengine 420A can understand.

[0121] Print data sent to a printer with printer controller 410 isusually in a form (e.g. postscript) that requires furtherinterpretation, processing or conversion. A printer controller 410receives the print data, interprets, process, and converts the printdata into a form that can be understood by the printer engine 420A.Regardless of the type of print data, conventionally, a user may need adevice-specific driver in his or her information apparatus 200 in orderto output the proper language, format, or file that can be accepted by aspecific printer or output device 220.

[0122]FIG. 4B illustrates another conventional output device 400B.Output device 400B may be a printing device, a display device, aprojection device, or a sound device. In the case that the output deviceis a printing device or a printer, the printer with reference to FIG. 4Bdoes not include a printer controller 410. As an example, printer 400Bmay be a low-cost printer such as a desktop inkjet printer. RIPoperations in this example may be implemented in a software applicationor in a device driver included in an information apparatus 200. Theinformation apparatus 200 generates device dependent output data (orprint data in case of a printer) by rasterizing and converting a digitaldocument into output data (e.g. into a compressed CMKY data with one ormore bits per pixel) that can be understood by an output engine (orprinter engine in case of a printer) 420B.

[0123] Regardless of type or sophistication level, different outputdevice 220 conventionally needs different printer drivers or outputmanagement applications in an information apparatus 200 to provideoutput capability. Some mobile devices with limited memory andprocessing power may have difficulty storing multiple device drivers orperform computational intensive RIP operations. It may also beinfeasible to install a new device dependent or specific printer drivereach time there is a need to print to a new printer. To overcome thesedifficulties, present invention provides several improvements to outputdevice 220 or output system 250 as described in detail next.

[0124] In present invention, output device 220 may include an outputcontroller 230 to help managing communication and negotiation processeswith an information apparatus 200 and to process output data. Outputcontroller 230 may include dedicated hardware or software or combinationof both for at least one output device 220. Output controller 230 may beinternally installed, or externally connected to one or more outputdevices 220. The output controller 230 is sometimes referred to as aprint server or output server.

[0125]FIGS. 5A and 5B illustrate two exemplary internal implementationsof the output controller 230 of present invention. FIG. 5A illustratesthe implementation of an output controller 230 inside a conventionalprinter with reference to FIG. 4A, which includes a conventional printercontroller 410(5A). The output controller 230(5A) includes aninterpreter 510A component for decoding the intermediate output data ofpresent invention; and a converter component 530A for converting one ormore decoded output images into a printer-controller print data that issuitable for input to the printer controller 410(5A). An optional imageprocessing component 520A may be included in the output controller230(5A).

[0126]FIG. 5B illustrates the implementation of an output controller 230included internally in a conventional output device 220 with referenceto FIG. 4B, which does not include a printer controller. The outputcontroller 230(5B) includes an interpreter 510B component for decodingthe intermediate output data of present invention; an image processor520B component for performing one or more image processing operationssuch as color space conversion, color matching and digital halftoning;and an optional encoder 530B component to conform the processed outputimages into an output-engine output data that is suitable for input tothe output engine 420B if the result of the image processing is notalready in required form suitable for the output engine 420B.

[0127] In one implementation, output device 220 may include acommunication unit 550 or adapter to interface with informationapparatus 200. Output device 220 may sometimes include more than onecommunication unit 550 in order to support different interfaces,protocols, or communication standards with different devices. Forexample, output device 220 may communicate with a first informationapparatus 200 through a Bluetooth interface while communicating with asecond information apparatus 200 through a parallel interface. Examplesof hardware components of a wireless communication unit are described ingreater detail below with reference to FIGS. 8A and 8B.

[0128] In one embodiment, output controller 230 does not include acommunication unit, but rather utilizes or manages a communication unitresiding in the associated output device 220 such as the illustration inFIG. 5. In another embodiment, output controller 230 may include orprovide a communication unit to output device 220 as shown in FIG. 6.For example, an output controller 230 with a wireless communication unitmay be installed internally or connected externally to a legacy printerto provide it with wireless communication capability that was previouslylacking.

[0129]FIG. 6 includes three functional block diagrams illustrating thehardware/software components of output controller 230 in three differentimplementations. Each components of an output controller 230 may includesoftware, hardware, or combination. For example, an output controller230 may include components using one or more or combinations of anapplication-specific integrated circuit (ASIC), a digital signalprocessor (DSP), a field programmable gate array (FPGA), firmware,system on a chip, and various communication chip sets. Output controller230 may also contain embedded processors 670 A with software componentsor embedded application software to implement its feature sets andfunctionalities.

[0130] Output controller 230 may contain an embedded operating system680. With an operating system, some or all functionalities and featuresets of the output controller 230 may be provided by applicationsoftware managed by the operating system. Additional applicationsoftware may be installed or upgraded to newer versions in order to, forexample, provide additional functionalities or bug fixes. FIG. 6A andFIG. 6C illustrates examples of implementation with an operating system680 while FIG. 6B illustrates an example without the operating system680 or the optional embedded processor 670.

[0131] Output controller 230 typically includes a memory unit 640, ormay share a memory unit with, for example, printer controller 410. Thememory unit and storage unit, such as ROM, RAM, flash memory and diskdrive among others, may provide persistent or volatile storage. Thememory unit or storage unit may store output device profiles, objects,codes, instructions or data (collectively referred to as softwarecomponents) that implement the functionalities of the output controller230. Part of the software components (e.g., output device profile) maybe uploaded to information apparatus 200 during or before a data outputoperation.

[0132] An output controller 230 may include a processor component 670Aand 670C, a memory component 650, an optional storage component 640, andan optional operating system component 680. FIG. 6 shows onearchitecture or implementation where the memory 650, storage 640,processor 670, and operating system 680 components, if exist, can beshare or accessed by other operational components in the outputcontroller 230 such as the interpreter 610 and image processor 650. FIG.6 shows two communication units 660A and 660B included in the outputcontroller 230; however, the output controller 230 of present inventionmay include any number of communication units 660. It is also possiblethat the output controller does not contain any communication unit butrather utilizes the communication unit of an output device.

[0133] The output controller 230 may be connected externally to anoutput device 220 or integrated internally into the output device 220.FIGS. 5A and 5B illustrate implementations of output controller 230inside an output device 220. The output controller 230, however, mayalso be implemented as an external box or station that is wired orwirelessly connected to an output device 220. An output controller 230implemented as an external box or station to an output device 220 maycontain its own user interface. One example of such an implementation isa print server connected to an output device 220 in an output system250. Another configuration and implementation is to integrate or combinethe functionalities of an output controller 230 with an existing printercontroller 410 (referred to as “combined controller”) if the outputdevice 220 is a printer as shown with reference to FIG. 7C or 7F. Acombined controller can also be internally integrated or externallyconnected to output device 220, and include functionalities of bothprinter controller 410 (e.g., input interpretation and or raster imageprocessing) and output controller 230 of present invention. Oneadvantage of this configuration is that the functionalities orcomponents of output controller 230 and printer controller 410 may sharethe same resources, such as processing unit, memory unit, etc. FIG. 6Cillustrates an example of a combined controller implementation or outputcontroller 230 where the printer controller 410C, interpreter 610C andconverter 630C shares the use of the processor 670C, memory 650C andstorage 640C, managed by an operating system 680C. Various exemplaryimplementations and configurations of an output controller 230 withrespect to an output device 220 or output system 250 are illustrated infurther detail with reference to FIG. 7.

[0134] Other possible implementations of output controller 230 mayinclude, for example, a conventional personal computer (PC), aworkstation, and an output server or print server. In these cases, thefunctionalities of output controller 230 may be implemented usingapplication software installed in a computer (e.g., PC, server, orworkstation), with the computer connected with a wired or wirelessconnection to an output device 220. Using a PC, server, workstation, orother computer to implement the feature sets of output controller 230with application software is just another possible embodiment of theoutput controller 230 and in no way departs from the spirit, scope andprocess of the present invention.

[0135] The difference between output controller 230 and printercontroller 410 should be noted. Printer controller 410 and outputcontroller 230 are both controllers and are both dedicated hardware andor software for at least one output device 220. Output controller 230refers to a controller with feature sets, capabilities, andfunctionalities of the present invention. A printer controller 410 maycontain functions such as interpreting an input page descriptionlanguage, raster image processing, and queuing, among others. An outputcontroller 230 may include part or all of the features of a printercontroller 410 in addition to the feature sets, functionalities,capabilities, and processes of present invention.

[0136] Functionalities and components of output controller 230 for thepurpose of providing universal data output may include or utilize:

[0137] Components and operations to receive output data from a pluralityof information apparatus 200; the output data may include anintermediate output data containing at least one rasterized imagerelated to the data content intended for output.

[0138] Components and operations to interpret and/or decode theintermediate output data.

[0139] Components and operations to process the intermediate outputdata. Such components and operations may include image processingfunctions such as scaling, segmentation, color correction, colormanagement, GCR, image enhancement, decompression, decryption, and orhalftoning among others.

[0140] Components and operations to generate an output-engine outputdata, the output-engine output data being in an output data formatacceptable for input to an output engine.

[0141] Components and operations to send the output-engine output datato the output engine.

[0142] When associated with an output device 220 that includes a printercontroller 410, the output controller of present invention may furtherinclude or utilize:

[0143] Components and operations to convert the intermediate output datainto a printer-controller print data (e.g. a PDL such as PostScript andPCL), the printer-controller print data being in a format acceptable toa printer controller.

[0144] Components and operations to send printer-controller print datato one or more printer controllers.

[0145] In addition to the above components and functionalities, outputcontroller 230 may further include one or more of the following:

[0146] Components and operations to communicate with one or moreinformation apparatus 200 through a wired or wireless interface.

[0147] Components and operations to communicate and or manage acommunication unit included in the output controller 230 or outputdevice 220.

[0148] Components and operations to store at least part of an outputdevice profile (a printer profile in case of a printer) in a memorycomponent.

[0149] Components and operations to respond to service request from aninformation apparatus 200 by transmitting at least part of an outputdevice profile to the information apparatus requesting service. Theoutput controller 230 may transmit the output device profiles or objectin one or multiple sessions.

[0150] Components and operations to broadcast or advertise the servicesprovided by a host output device 220 to one or more informationapparatus 200 that may request such services.

[0151] Components and operations to implement payment processing andmanagement functions by, for example, calculating and processingpayments according to the services requested or rendered to a client(information apparatus 200).

[0152] Components and operations to provide a user interface such asdisplay screen, touch button, soft key, etc.

[0153] Components and operations to implement job management functionssuch as queuing and spooling among others.

[0154] Components and operations to implement security or authenticationprocedures. For example, the output controller 230 may store in itsmemory component (or shared memory component) an access control list,which specifies what device or user may obtain service from its host (orconnected) output device 220. Therefore, an authorized informationapparatus 200 may gain access after confirming with the control list.

[0155] When output controller 230 is implemented as firmware, or anembedded application, the configuration and management of thefunctionalities of output controller 230 may be optionally accomplishedby, for example, using controller management software in a hostcomputer. A host computer may be a desktop personal computer (PC),workstation, or server. The host computer may be connected locally orthrough a network to the output device 220 or the controller 230.Communication between the host computer and the output controller 230can be accomplished through wired or wireless communication. Themanagement application software in the host computer can manage thesettings, configurations, and feature sets of the output controller 230.Furthermore, host computer's configuration application may download andor install application software, software components and or data to theoutput controller 230 for the purpose of upgrading, updating, and ormodifying the features and capabilities of the output controller 230.

[0156] Output device 220 in one implementation includes or is connectedto output controller 230 described above. Therefore, functionalities andfeature sets provided by output controller 230 are automaticallyincluded in the functionalities of output device 220. The output device220 may, however, implement or include other controllers and/orapplications that provide at least partially the features andfunctionalities of the output controller 230.

[0157] Therefore, the output device 220 may include some or all of thefollowing functionalities:

[0158] Components and operations to receive multiple service requests orqueries (e.g., a service request, a data query, an object or componentquery etc.) from a plurality of information apparatus 200 and properlyrespond to them by returning components, which may contain data,software, instructions and/or objects.

[0159] Components and operations to receive output data from a pluralityof information apparatus 200; the output data may include anintermediate output data containing one or more rasterized image relatedto the content intended for output.

[0160] Components and operations to interpret and/or decoding theintermediate output data.

[0161] Components and operations to process and/or convert theintermediate output data into a form (e.g. output-engine print data)suitable for rendering at an output engine associated with the outputdevice.

[0162] Components and operations to render a representation or an imagerelated to the content onto an output medium (e.g. substrate or adisplay screen).

[0163] An output device 220 may further comprise optionally one or moreof the following functionalities:

[0164] Components and operations for establishing and managing acommunication link with an information apparatus 200 requesting service;the communication link may include wired or wireless communication.

[0165] Components and operations for storing at least part of an outputdevice profile (e.g. printer profile) in a memory component.

[0166] Components and operations to provide at least part of an outputdevice profile (e.g., printer profile in case of a printer) to one ormore information apparatus 200 requesting service. The output device 220may transmit the output device profile in one or multiple sessions.

[0167] Components and operations to advertise or broadcast servicesprovided or available to one or more information apparatus 200.

[0168] Components and operations to implement payment processing andmanagement functions by, for example, calculating and processingpayments according to the services requested by or rendered to a client(information apparatus 200).

[0169] Components and operations to implement job managementfunctionalities such as queuing and spooling among others.

[0170] Components and operations to provide a user interface such asdisplay screen touch button, soft key, power switch, etc.

[0171] Components and operations to implement security or authenticationprocedures. For example, the output device 220 may store in its memorycomponent (or a shared memory component) an access control list, whichspecifies what device or user may obtain service from it. Therefore, anauthorized information apparatus 200 may gain access after confirmingwith the control list.

[0172] FIGS. 7A-7F illustrate various alternative configurations andimplementations of output controller 230 with respect to an outputdevice 230. Printer is sometimes used as an exemplary output device 230to demonstrate the various configurations. It should be understood,however, the output device 230 of present invention is not limited toprinters.

[0173] As described with reference to FIG. 4., a printer may or may notcontain a printer controller 410. Printer 400A that includes a printercontroller 410 typically has higher speed and is more expensive thanprinter 400B which does not include a printer controller 410.

[0174]FIG. 7A shows that output controller 230 may be cascadedexternally to one or more printers (only one shown). Informationapparatus 200 communicates with output controller 230A, which thencommunicates with output device 220 such as a printer 220A. Thecommunication link between the output controller 230A and the printer220A may be a wired link or a wireless link, as described above. FIGS.6A and 6B illustrates two examples of functional component design of theoutput controller that can implement the configuration illustrated inFIG. 7A. The Image processor 620 in this implementation is optional.

[0175]FIG. 7B shows another implementation in which output controller230B is installed as one or more circuit boards or cards internallyinside printer 220B. The output controller 230B may co-exist withprinter controller 410 and other components of the printer 220B. Oneexample of this implementation is to connect output controller 230Bsequentially with the printer controller 310. FIG. 5A shows as anexample of an implementation.

[0176]FIG. 7C shows another implementation in which the functionalitiesof output controller 230 and printer controller 410 are combined into asingle controller (referred to as “combined controller”) 230C. In thisimplementation, it is possible to reduce the cost of material whencompared to implementing two separate controllers as shown in FIG. 7B.As an example, the combined controller 230C may share the sameprocessors, memories, and storages to run the applications andfunctionalities of the two types of controllers and therefore, may havelower component costs when compared to providing two separatecontrollers. FIG. 6C illustrates an example of a combined controllerfunctional component implementation.

[0177] Some printers do not include a raster image processor or printercontroller 410, as illustrated in FIG. 4B. An example of this type ofprinter is a lower cost desktop inkjet printer. Input to an inkjetprinter may consist of a compressed CMYK data (proprietary or published)with one or more bits per pixel input. To output to a printer that doesnot include a printer controller, a device specific software applicationor a printer driver is typically required in an information apparatus200 to perform raster image processing operations. Accordingly, outputcontroller 230 can be implemented into a variety of output devices 220and/or output systems 250 including printers that do not have printercontrollers for performing raster image processing operations.

[0178]FIG. 7D and FIG. 7E illustrate two implementations of outputcontroller 230 in an output device 220 or system 250. The output device230 or system 250 may include a display device, a projection device, anaudio output device or a printing device. In the case when the outputdevice 220D or 220E is a printer, it does not include a printercontroller. FIG. 7D illustrates an implementation of an outputcontroller 230D installed as an external component or “box” to outputdevice 220D. For example, the output controller 230 may be implementedas an application in a print server or as a standalone box or station.In this configuration, some or all of raster image processing operationsmay be implemented in the output controller 230D. Output controller 230Dreceives intermediate output data from an information apparatus 200 andgenerates output-engine output data that is acceptable to the outputengine included in the output device 220D. The output controller 230Dmay send the output data to the output device 220D through a wired orwireless communication link or connection. FIGS. 6A and 6B illustratestwo example of functional component design of the output controller thatcan implement the configurations for both FIGS. 7D and 7E.

[0179]FIG. 7E shows a fifth implementation of output controller 230E inwhich the output controller 230E is incorporated within output device220E as one or more circuit boards or cards and may contain software andapplications running on an embedded processor. As with output device220D (FIG. 7D), output device 220E does not include a printer controller410. Accordingly, the output controller 230E implements thefunctionalities and capabilities of present invention that may includepart of or complete raster imaging processing operation.

[0180]FIG. 7F shows a sixth implementation, an external combinedcontroller 230F that integrates the functionalities of a printercontroller 310 and an output controller into a single external combinedcontroller component or “box” 230F. The two controller functions mayshare a common processor as well as a common memory space to runapplications of the two types of controllers. Under this configuration,either information apparatus 200 or the combined controller 230F couldperform or share at least part of raster image processing functionality.FIG. 6C shows an example of functional components of a combinedcontroller 230F.

[0181] Another implementation of the combined controller 230F shown inFIG. 7F is to use an external computing device (PC, workstation, orserver) running one or more applications that include the functionalityof output controller 230 and printer controller 410.

[0182] The above are examples of different implementations andconfigurations of output controller 230. Other implementations are alsopossible. For example, partial functionalities of output controller 230may be implemented in an external box or station while the remainingfunctionalities may reside inside an output device 220 as a separateboard or integrated with a printer controller 410. As another example,the functionalities of output controller 230 may be implemented into aplurality of external boxes or stations connected to the same outputdevice 220. As a further example, the same output controller 230 may beconnected to service a plurality of output devices 220

[0183]FIGS. 8A and 8B are block diagrams illustrating two possibleconfigurations of hardware/software components of wireless communicationunits. These wireless communication units can be implemented andincluded in information apparatus 200, in output controller 230 and inoutput device 220. Referring to FIG. 8A, a radio adapter 800 may beimplemented to enable data/voice transmission among devices (e.g.,information apparatus 200 and output device 220) through radio links. AnRF transceiver 814 coupled with antenna 816 is used to receive andtransmit radio frequency signals. The RF transceiver 814 also convertsradio signals into and from electronic signals. The RF transceiver 814is connected to an RF link controller 810 by an interface 812. Theinterface 812 may perform functions such as analog-to-digitalconversion, digital-to-analog conversion, modulation, demodulation,compression, decompression, encoding, decoding, and other data or formatconversion functions.

[0184] RF link controller 810 implements real-time lower layer (e.g.,physical layer) protocol processing that enables the hosts (e.g.,information apparatus 200, output controller 230, output device 220,etc.) to communicate over a radio link. Functions performed by the linkcontroller 810 may include, without limitation, errordetection/correction, power control, data packet processing, dataencryption/decryption and other data processing functions.

[0185] A variety of radio links may be utilized. A group of competingtechnologies operating in the 2.4 GHz unlicensed frequency band is ofparticular interest. This group currently includes Bluetooth, Home radiofrequency (Home RF) and implementations based on IEEE 802.11 standard.Each of these technologies has a different set of protocols and they allprovide solutions for wireless local area networks (LANs). Interferenceamong these technologies could limit deployment of these protocolssimultaneously. It is anticipated that new local area wirelesstechnologies may emerge or that the existing ones may converge.Nevertheless, all these existing and future wireless technologies may beimplemented in the present invention without limitation, and therefore,in no way depart from the scope of present invention.

[0186] Among the currently available wireless technologies, Bluetoothmay be advantageous because it requires relatively lower powerconsumption and Bluetooth-enabled devices operate in piconets, in whichseveral devices are connected in a point-to-multipoint system. Referringto FIG. 8B, one or more infrared (IR) adapters 820 may be implemented toenable data transmission among devices through infrared transmission.The IR adapters 820 may be conveniently implemented in accordance withthe Infrared Data Association (IrDA) standards and specifications. Ingeneral, the IrDA standard is used to provide wireless connectivitytechnologies for devices that would normally use cables for connection.The IrDA standard is a point-to-point (vs. point-to-multipoint as inBluetooth), narrow angle, ad-hoc data transmission standard.

[0187] Configuration of infrared adapters 820 may vary depending on theintended rate of data transfer. FIG. 8B illustrates one embodiment ofinfrared adapter 820. Transceiver 826 receives/emits IR signals andconverts IR signals to/from electrical signals. A UART (universalasynchronous receiver/transmitter) 822 performs the function ofserialization/deserialization, converting serial data stream to/fromdata bytes. The UART 822 is connected to the IR transceiver 826 byencoder/decoder (ENDEC) 824. This configuration is generally suitablefor transferring data at relatively low rate. Other components (e.g.,packet framer, phase-locked loop) may be needed for higher data transferrates.

[0188]FIGS. 8A and 8B illustrate exemplary hardware configurations ofwireless communication units. Such hardware components may be includedin devices (e.g., information apparatus 200, output controller 230,output device 220, etc.) to support various wireless communicationsstandards. Wired links, however, such as parallel interface, USB,Firewire interface, Ethernet and token ring networks may also beimplemented in the present invention by using appropriate adapters andconfigurations.

[0189]FIG. 9 is a logic flow diagram of an exemplary raster imagingprocess (RIP) 902 that can implement the universal output method ofpresent invention. Content (e.g. digital document) 900 may be obtainedand/or generated by an application running in an information apparatus200. For example, a document browsing application may allow a user todownload and or open digital document 900 stored locally or in a networknode. As another example, a document creating or editing application mayallow a user to create or edit digital documents in his/her informationapparatus 200.

[0190] A client application 210 in the information apparatus may be inthe form of a device driver, invoked by other applications residing inthe information apparatus 200 to provide output service. Alternatively,the client application 210 of present invention may be an applicationthat includes data output and management component, in addition of otherfunctionalities such as content acquisitions, viewing, browsing, and orediting etc. For example, a client application 210 in an informationapparatus 200 may itself include components and functions for a user todownload, view and or edit digital document 900 in addition of theoutput management function described herein.

[0191] Raster image process method 902 allows an information apparatus200 such as a mobile device to pervasively and conveniently outputcontent (e.g. a digital document) to an output device 220 or system 250that includes an output controller 230. A client application 210 in aninformation apparatus 200 may perform part of raster image processingoperations (e.g. rasterization operation). Other operations of rasterimage processing such as halftoning can be completed by the outputdevice 220 or by the output controller 230. In conventional data outputmethods, raster image processing is either implemented entirely in aninformation apparatus (e.g. a printer that does not include a printercontroller with reference to FIG. 1A) or in an output device (e.g. aprinter that includes a printer controller with reference to FIG. 1B).Present invention provides a more balanced approach where raster imageprocess operations are shared between an information apparatus 200 andan output device 220 or system 250. For example, content 600 may beprocessed (e.g. raster image processed) by different components or partsof an overall output system from a client application 210 to an outputcontroller 230 before being sent to an output engine or a printer enginefor final output in step 960. Because the raster image processingoperations are not completely implemented in the information apparatus200, there is less processing demand on the information apparatus 200.Therefore, present RIP process may enable additional mobile devices withless memory and processing capability to have data output capability.

[0192] In step 910, rasterization operation, a content (e.g. digitaldocument), which may include text, graphics, and image objects, isconformed or rasterized to image form according to one or morerasterization parameters such as output size, bit depth, color space,resolution, number of color channels etc. During the rasterizationoperation, text and vector graphics information in the content arerasterized or converted into image or bitmap information according to agiven set of rasterization parameters. Image information in the contentor digital document may be scaled and or interpolated to fit aparticular output size, resolution and bit depth etc. The rasterizationparameters are in general device dependent, and therefore may varyaccording to different requirements and attributes of an output device220 and its output engine. There are many ways to obtain devicedependent rasterization parameters, as described in more detail belowwith reference to FIG. 12A. Device dependent rasterization parameters,in one example, may be obtained from an output device profile stored inan information apparatus 200, an output device 220 or an outputcontroller 230.

[0193] In an alternative implementation, rasterization parameters may bepredetermined by a standard or specification. In this implementation, instep 910 the content 900 is rasterized to fit or match this predefinedor standard rasterization parameters. Therefore, the rasterized outputimage becomes device independent. One advantage of being deviceindependent is that the rasterized output image is acceptable withcontrollers, devices and/or output devices implemented or created withthe knowledge of such standard or specification. A rasterized image withpredefined or standardized attributes is usually more portable. Forexample, both the client application 210 and output device 220 or itsoutput controller 230 may be preprogrammed to receive, interpret, and oroutput raster images based on a predefined standard and/orspecification.

[0194] Occasionally, a predefined standard or specification forrasterization parameters may require change or update. One possibleimplementation for providing an easy update or upgrade is to storeinformation and related rasterization parameters in a file or a profileinstead of hard coding these parameters into programs, components orapplications. Client application 210, output controller 230, and/or theoutput device 220 can read a file or a profile to obtain informationrelated to rasterization parameters. To upgrade or update the standardspecification or defaults requires only replacing or editing the file orthe profile instead of replacing a software application or componentsuch as the client application 210.

[0195] In step 920 the rasterized content in image form is encoded intoan intermediate output data. The intermediate output data, whichdescribes the output content, may include image information,instructions, descriptions, and data (e.g. color profile). Therasterized output image may require further processing including one ormore of compression, encoding, encryption, smoothing, image enhancement,segmentation, color correction among others before being stored into theintermediate output data. The output image in the intermediate outputdata may be encoded in any image format and with any compressiontechnique such as JPEG, BMP, TIFF, JBIG etc. In one preferredembodiment, a mixed raster content (MRC) format and its related encodingand/or compression methods are used to generate the output image. Theadvantages of using MRC over other image formats and techniques mayinclude, for example, better compression ratio, better data informationretention, smaller file size, and or relatively better image qualityamong others.

[0196] In step 930, the intermediate output data is transmitted to theoutput device 220 or output system 250 for further processing and finaloutput. The transmission of the intermediate output data may beaccomplished through wireless or wired communication links between theinformation apparatus 200 and the output device 220 and can beaccomplished through one or multiple sessions.

[0197] In step 940, the output device 220 or output system 250 receivesthe transmitted intermediate output data. The output device 220 oroutput system 250 may include an output controller 230 to assistcommunicating with the information apparatus 200 and/or processing theintermediate output data. Output controller 230 may have a variety ofconfigurations and implementations with respect to output device 220 asshown in FIGS. 7A-7F. Interpretation process 940 may include one or moreof parsing, decoding, decompression, decryption, image space conversionamong other operations if the received intermediate output data requiressuch processing. An output image is decoded or retrieved from theintermediate output data and may be temporarily stored in a buffer ormemory included in the output device/output system (220/250) or outputcontroller 230 for further processing.

[0198] If the intermediate output data includes components with MRCformat or encoding techniques, it may contain additional segmentedinformation (e.g. foreground and background), which can be used toenhance image quality. For example, different techniques or algorithmsin scaling, color correction, color matching, image enhancement,anti-aliasing and or digital halftoning among others may be applied todifferent segments or layers of the image information to improve outputquality or maximize retention or recovery of image information. Multiplelayers may later be combined or mapped into a single layer. These imageprocessing and conversion components and/or operations can be includedin the output controller 230 of present invention.

[0199] In step 950, the decoded or retrieved output image from theintermediate output data may require further processing or conversion.This may include one or more of scaling, segmentation, interpolation,color correction, GCR, black generation, color matching, color spacetransformation, anti-aliasing, image enhancement, image smoothing and ordigital halftoning operations among others.

[0200] In an embodiment where the output device 220 does not include aprinter controller, an output controller 230 or an output device 220that includes output controller, after performing the remaining portionof RIP operations (e.g. color space conversion and halftoning) on theoutput image, may further convert the output data in step 950 into aform that is acceptable for input to a printer engine for rendering.

[0201] In an alternative embodiment where the output device 220 or theoutput system 250 includes a conventional printer controller, the outputcontroller may simply decodes and or converts the intermediate outputdata (print data in this example) into format or language acceptable tothe printer controller. For example, a printer controller may require asinput a page description language (e.g. PostScript, PCL, PDF, etc.), amarkup language (HTML, XML etc) or other graphics or document format. Inthese cases, the output controller 230 may interpret, decompress andconvert the intermediate print data into an output image that hasoptimal output resolution, bit depth, color space, and output sizerelated to the printer controller input requirements. The output imageis then encoded or embedded into a printer-controller print data (e.g. apage description language) and sent to the printer controller. Aprinter-controller print data is a print data that is acceptable orcompatible for input to the printer controller. After the printercontroller receives the printer-controller print data, the printercontroller may further perform operations such as parsing,rasterization, scaling, color correction, image enhancement, halftoningetc on the output image and generate an appropriate printer-engine printdata suitable for input to the printer engine.

[0202] In step 960, the output-engine output data or printer-engineprint data generated by the output controller 230 or the printercontroller in step 950 is sent to the output engine or printer engine ofthe output device for final output.

[0203]FIG. 10 illustrates a flow diagram of a universal data outputprocess of the present invention that includes the raster imageprocessing illustrated with reference to FIG. 9. A universal data outputprocess allows an information apparatus 200 to pervasively outputcontent or digital document to an output device. The data output processmay include or utilize:

[0204] A user interface component and operation where a user initiatesan output process and provides an indication of the selected outputcontent (e.g. digital document) for output.

[0205] A client application component or operation that processes thecontent indicated for output, and generates an intermediate output data.The intermediate output data may include at least partly a raster outputimage description related to the content.

[0206] An information apparatus component or operation that transmitsthe intermediate output data to one or more selected output device 220.

[0207] An output device component (e.g. output controller) or operationthat interprets the intermediate output data and may further process orconvert the output data into a form more acceptable to an output enginefor rendering of the content.

[0208] With reference to FIG. 10, a user in step 1000 may initiate theuniversal output method or process 1002. Typically, a user initiates theoutput process by invoking a client application 210 in his/herinformation apparatus 200. The client application 210 may be launched asan independent application or it may be launched from other applications205 (such as from a document browsing, creating or editing application)or as part of or component of or a feature of another application 205residing in the same information apparatus 200. When launched fromanother application 205, such as the case when the client application isa device driver or helper application, the client application 210 mayobtain information, such as the content (e.g. digital document) fromthat other application 205. This can be accomplished, for example, byone or combinations of messages or facilitated through an operatingsystem or a particular object or component model etc.

[0209] During output process 1002, a user may need to select one or moreoutput devices 220 for output service. An optional discovery processstep 1020 may be implemented to help the user select an output device220. During the discovery process step 1020, a user's informationapparatus 200 may (1) search for available output devices 220; (2)provide the user with a list of available output devices 220; and (3)provide means for the user to choose one or more output devices 220 totake the output job. An example of a discovery process 1020 is describedbelow in greater detail with reference to FIG. 11.

[0210] The optional discovery process 1020 may sometimes be unnecessary.For example, a user may skip the discovery process 1020 if he or shealready knows the output device (e.g., printer) 220 to which the outputis to be directed. In this case, the user may simply connect theinformation apparatus 200 to that output device 220 by wired connectionsor directly point to that output device 220 in a close proximity such asin the case of infrared connectivity. As another example, a user maypre-select or set the output device or devices 220 that are usedfrequently as preferred defaults. As a result, the discovery process1020 may be partially or completely skipped if the default output device220 or printer is found to be available.

[0211] In stage 1030, the client application may interact with outputdevice 220, the user, and/or other applications 205 residing in the sameinformation apparatus 200 to (1) obtain necessary output device profileand/or user preferences, (2) perform functions or part of raster imageprocessing operations such as rasterization, scaling and colorcorrection, and/or (3) convert or encode at least partially therasterized content (e.g. digital document) into an intermediate outputdata. The processing and generation of the intermediate output data mayreflect in part a relationship to an output device profile and/or userpreferences obtained, if any. The intermediate output data generated bythe client application 210 is then transmitted through wired or wirelesslocal communication link(s) 240 to the output controller 230 included orassociated with the selected output device 220 or output system 250. Anexemplary client application process is described in greater detail withreference to FIG. 12.

[0212] In step 1040, the output controller 230 of present inventionreceives the intermediate output data. In the case where the selectedoutput device 230 does not include a printer controller, the outputcontroller 230 of present invention may further perform processingfunctions such as parsing, interpreting, decompressing, decoding, colorcorrection, image enhancement, GCR, black generation and halftoningamong others. In addition, the output controller 230 may further convertor conform the intermediate output data into a form or format suitablefor the output engine (e.g. printer engine in the case of a printer).The generated output-engine output data from the output controller istherefore, in general, device dependent and acceptable for final outputwith the output engine (or the printer engine in case of a printer)included in the selected output device 220 or output system 250.

[0213] In the case where the selected output device 220 is a printer,and when the printer includes or is connected to a printer controller,the output controller 230 may generate the proper language or inputformat required to interface with the printer controller (referred to asprinter-controller print data). The printer controller may for examplerequire a specific input such as a page description language (PDL),markup language, or a special image or graphics format. In these cases,the output controller 230 in step 1040 may interpret and decode theintermediate output data, and then convert the intermediate output datainto the required printer-controller print data (e.g. PDL such asPostScript or PCL). The printer-controller print data generated by theoutput controller is then sent to the printer controller for furtherprocessing. The printer controller may perform interpretation and rasterimage processing operations among other operations. After processing,the printer controller generates a printer-engine print data suitablefor rendering at the printer engine.

[0214] In either case, the output controller 230 or printer controllergenerates an output-engine output data that is suitable for sending toor interfacing with the output engine or the printer engine included inthe output device for rendering. The output data may be temporarilybuffered in components of the output device 220. An implementation ofthe output device process 1040 is described in greater detail withreference to FIG. 13.

[0215] The steps included in the universal pervasive output process 1002may proceed automatically when a user requests output service.Alternatively, a user may be provided with options to proceed, cancel,or input information at each and every step. For example, a user maycancel the output service at any time by, for example, indicating acancellation signal or command or by terminating the client application210 or by shutting down the information apparatus 200 etc.

[0216]FIG. 11 is a flow diagram of an example of a discovery process720, which may be an optional step to help a user locate one or moreoutput devices 220 for an output job. The discovery process 1020 may,however, be skipped partially or entirely. Implementation of discoveryprocess 1020 may require compatible hardware and software componentsresiding in both the information apparatus 200 and the output device220. The information apparatus 200 may utilize the client application210 or other application 205 in this process. The discovery process 1020may include:

[0217] An information apparatus 200 communicating with available outputdevices 220 to obtain information and attributes relating to the outputdevice 220 and or its services such as output device capability, featuresets, service availability, quality of service, condition.

[0218] An Information apparatus 200 provides the user information oneach available and or compatible output devices 220.

[0219] A user selects or the client application 210 (automatically ornot) selects one or more output devices 220 for the output service fromthe available or compatible output devices 220.

[0220] Various protocols and or standards may be used during discoveryprocess 1020. Wireless communication protocols are preferred. Wiredcommunication, on the other hand, may also be implemented. Examples ofapplicable protocols or standards may include, without limitation,Bluetooth, HAVi, Jini, Salutation, Service Location Protocol, andUniversal Plug-and-play among others. Both standard and proprietaryprotocols or combination may be implemented in the discovery process1020. However, these different protocols, standards, or combinationshall not depart from the spirit and scope of present invention.

[0221] In one implementation an application (referred here forsimplicity of discussion as a “communication manager,” not shown)residing in the information apparatus 200 helps communicate with outputdevice 220 and manages service requests and the discovery process 1020.The communication manager may be a part of or a feature of the clientapplication 210. Alternatively or in combination, the communicationmanager may also be a separate application. When the communicationmanager is a separate application, the client application 210 may havethe ability to communicate, manage or access functionalities of thecommunication manager.

[0222] The discovery process 1020 may be initiated manually by a user orautomatically by a communication manager when the user requests anoutput service with information apparatus 200.

[0223] In the optional step 1100, a user may specify searching ormatching criteria. For example, a user may indicate to search for colorprinters and or printers that provide free service. The user maymanually specify such criteria each time for the discovery process 1020.Alternatively or in combination, a user may set default preferences thatcan be applied to a plurality of discovery processes 1020. Sometimes,however, no searching criteria are required: the information apparatus200 may simply search for all available output devices 220 that canprovide output service.

[0224] In step 1101, information apparatus 200 searches for availableoutput devices 220. The searching process may be implemented by, forexample, an information apparatus 200 (e.g. with the assistance of acommunication manager) multi-casting or broadcasting or advertising itsservice requests and waiting for available output devices 220 torespond. Alternatively or in combination, an information apparatus 200may “listen to” service broadcasts from one or more output devices 220and then identify the one or more output devices 220 that are needed oracceptable. It is also possible that multiple output devices 220 of thesame network (e.g., LAN) register their services with a control point(not shown). A control point is a computing system (e.g., a server) thatmaintains records on all service devices within the same network. Aninformation apparatus 200 may contact the control point and search orquery for the needed services.

[0225] In step 1102, if no available output device 220 is found, thecommunication manager or the client application 210 may provide the userwith alternatives 1104. Such alternatives may include, for example,aborting the discovery process 1020, trying discovery process 1020again, temporarily halting the discovery process 1020, or being notifiedwhen an available output device 220 is found. As an example, thediscovery process 1020 may not detect any available output device 220 inthe current wired/wireless network. The specified searching criteria (ifany) are then saved or registered in the communication manager. When theuser enters a new network having available output devices 220, or whennew compatible output devices 220 are added to the current network, orwhen an output device 220 becomes available for any reason, thecommunication manager may notify the user of such availability.

[0226] In step 1106, if available output devices 220 are discovered, thecommunication manager may obtain some basic information, or part of orthe entire output device profile, from each discovered output device220. Examples of such information may include, but not limited to,device identity, service charge, subscription, service feature, devicecapability, operating instructions, etc. Such information is preferablyprovided to the user through the user interface (e.g., display screen,speaker, etc.) of information apparatus 200.

[0227] In step 1108, the user may select one or more output devices 220based on information provided, if any, to take the output job. If theuser is not satisfied with any of the available output device 220, theuser may decline the service. In this case, the user may be providedwith alternatives such as to try again in step 1110 with some changesmade to the searching criteria. The user may choose to terminate theservice request at any time. In step 1112, with one or more outputdevices 220 selected or determined, the communication link betweeninformation apparatus 200 and the selected output device or devices 220may be “locked”. Other output devices 220 that are not selected may bedropped. The output process 1020 may then proceed to the clientapplication process of step 1030 of FIG. 10.

[0228]FIG. 12A is a flow diagram of an exemplary client applicationprocess with reference to step 1030 of FIG. 10. A client applicationprocess 1202 for universal output may include or utilize:

[0229] A client application 210 that obtains content (e.g. digitaldocument) intended for output.

[0230] A client application 210 that obtains output device parameters(e.g. rasterization parameters, output job parameters). One example ofimplementation is to obtain the output device parameters from an outputdevice profile (e.g. printer profile), which includes device dependentparameters. Such profile may be stored in an output controller 230,output device 220 or information apparatus 200.

[0231] A client application 210 that may optionally obtain userpreferences through (1) user's input (automatic or manual) or selectionsor (2) based on preset preference or pre-defined defaults or (3)combination of the above.

[0232] A client application 210 that rasterizes at least part of thecontent intended for output (e.g. a digital document) according to oneor more rasterization parameters obtained from previous steps such asthrough output device profile, user selection, predefined userpreferences, predefined default or standard etc.

[0233] A client application 210 that generates an intermediate outputdata containing at least part of the rasterized image related at leastpartly to the content intended for output.

[0234] A client application that transmits the intermediate output datato an output device 220 or output controller 230 for further processingand or final output.

[0235] A client application 210 may obtain content (e.g. digitaldocument) 900 or a pointer or reference to the content in many ways. Ina preferred embodiment, the client application 210 is in the form of adevice driver or an independent application, and the content or itsreference can be obtained by the client application 210 from otherapplications 205 in the same information apparatus 200. To illustrate anexample, a user may first view or download or create a digital documentby using a document browsing, viewing and or editing application 205 inhis/her information apparatus 200, and then request output service bylaunching the client application 210 as a device driver or helperapplication. The client application 210 communicates with the documentbrowsing or editing application to obtain the digital document orreference to the digital document. As another example, the clientapplication 210 is an independent application and it launches anotherapplication to help locate and obtain the digital document for output.In this case, a user may first launch the client application 210, andthen invoke another application 205(e.g. document editing and orbrowsing application) residing in the same information apparatus 200 toview or download a digital document. The client application 210 thencommunicates with the document browsing or editing application to obtainthe digital document for output.

[0236] In another embodiment, the client application 210 itself providesmultiple functionalities or feature sets including the ability for auser to select the content (e.g. digital document) for output. Forexample, the client application 210 of present invention may provide aGUI where a user can directly input or select the reference or path of adigital document that the user wants to output.

[0237] In order to perform rasterization operation on content (e.g.digital document) 900, the client application 210 in step 1210 needs toobtain device dependent parameters of an output device 220 such as therasterization parameters. Device dependent parameters may be included inan output device profile. A client application 210 may obtain an outputdevice profile or rasterization parameters in various ways. As anexample, an output device profile or rasterization parameters can beobtained with one or combination of the following:

[0238] The client application communicates with an output device 220 toupload output device profile or information related to one or morerasterization parameters.

[0239] The client application 210 obtains the output device profile froma network node (e.g. server).

[0240] A user selects an output device profile stored in the user'sinformation apparatus 200.

[0241] The client application 210 automatically retrieves or uses adefault profile, predefined standard values or default values amongothers.

[0242] The client application 210 obtains output device parameters bycalculating, which may include approximation, based at least partly onthe information it has obtained from one or combination of an outputdevice 220, a user, default values, and a network node.

[0243] It is important to note that step 1210 is an optional step. Insome instance, part of or the entire output device profile or relateddevice dependent information may have been already obtained by theclient application 210 during the prior optional discovery process (step1020 in FIG. 10). In this case, step 1210 may be partially or entirelyskipped.

[0244] In one implementation, the client application 210 communicateswith one or more output devices 220 to upload output device profilesstored in the memory or storage components of those one or more outputdevices 220 or their associated one or more output controllers 230. Insome instance, the uploaded output device profile may contain partiallyor entirely references or pointers to device parameters instead of thedevice parameters themselves. The actual output device parameters may bestored in a network node or in the information apparatus 200, where theycan be retrieved by the client application 210 or by other applications205 using the references or pointers. It should be noted that aplurality of information apparatuses 200 may request to obtain outputdevice profile or profiles from the same output device 220 at the sametime or at least during overlapping periods. The output device 220 orits associated output controller 230 may have components or systems tomanage multiple communication links and provide the output deviceprofile or profiles concurrently or in an alternating manner to multipleinformation apparatuses 200. Alternatively, an output device 220 mayprovide components or systems to queue the requests from differentinformation apparatuses 200 and serve them in a sequential fashionaccording to a scheme such as first come first served, quality ofservice, etc. Multi-user communication and service management capabilitywith or without queuing or spooling functions may be implemented by, forexample, the output controller 230 as optional feature sets.

[0245] In another implementation, one or more output device profiles maybe stored locally in the information apparatus 200. The clientapplication 210 may provide a GUI where a user can select a profile froma list of pre-stored profiles. As an example, the GUI may provide theuser with a list of output device names (e.g. makes and models), eachcorresponding to an output device profile stored locally. When the userselects an output device 220, the client application 210 can thenretrieve the output device profile corresponding to the name selected bythe user.

[0246] In certain cases, during a discovery or communication processdescribed'earlier, the client application 210 may have already obtainedthe output device ID, name, or reference or other information in avariety of ways described previously. In this case, the clientapplication 210 may automatically activate or retrieve an output deviceprofile stored in the information apparatus 200 based on the outputdevice ID, name, or reference obtained without user intervention.

[0247] In yet another implementation, the client application 210 may usea set of pre-defined default values stored locally in a user'sinformation apparatus 200. Such defaults can be stored in one or morefiles or tables. The client application 210 may access a file or tableto obtain these default values. The client application 210 may alsocreate or calculate certain default values based on the information ithas obtained during previous steps (e.g. in optional discovery process,based on partial or incomplete printer profile information obtained,etc). A user may or may not have an opportunity to change or overwritesome or all defaults.

[0248] Finally, if, for any reason, no device dependent information isavailable, the client application 210 may use standard output andrasterization parameters or pre-defined default parameters. The aboveillustrates many examples and variations of implementation, these andother possible variations in implementation do not depart from the scopeof the present invention.

[0249] In step 1220, the client application 210 may optionally obtainuser preferences. In one exemplary implementation, the clientapplication 210 may obtain user preferences with a GUI (graphical userinterface). For simplicity, a standard GUI form can be presented to theuser independent of the make and model of the output device 220 involvedin the output process. Through such an interface, the user may specifysome device independent output parameters such as page range, number ofcards per page, number of copies, etc. Alternatively or in combination,the client application 210 may also incorporate output device-dependentfeatures and preferences into the GUI presented to the user. Thedevice-dependent portion of the GUI may be supported partly or entirelyby information contained in the output device profile obtained throughcomponents and processes described in previous steps. To illustrate,device dependent features and capabilities may include print quality,color or grayscale, duplex or single sided, output page size amongothers.

[0250] It is preferred that some or all components, attributes or fieldsof user preferences have default values. Part or all default values maybe hard-coded in software program in client application 210 or inhardware components. Alternatively, the client application 210 may alsoaccess a file to obtain default values, or it may calculate certaindefault values based on the information it has obtained during previoussteps or components (e.g. from an output device profile). A user may ormay not have the ability to pre-configure, or change or overwrite someor all defaults. The client application 210 may obtain and use some orall defaults with or without user intervention or knowledge.

[0251] In step 1230, the client application 210 of present inventionperforms rasterization operation to conform a content (e.g. a digitaldocument), which may includes objects and information in vectorgraphics, text, and images, into one or more output images in accordancewith the rasterization parameters obtained in previous steps. Duringrasterization process, text and vector graphics object or information inthe content is rasterized or converted into image or bitmap formaccording to the given set of rasterization parameters. Imageinformation in the content may require scaling and interpolationoperations to conform the rasterization parameters. Rasterizationprocess may further include operations such as scaling, interpolation,segmentation, image transformation, image encoding, color spacetransformation etc. to fit or conform the one or more output images tothe given set of rasterization parameters such as target output size,resolution, bit depth, color space and image format etc.

[0252] In step 1240, the client application 210 generates anintermediate output data that includes the rasterized one or more outputimages. The intermediate output data of the present invention maycontain image information, instructions, descriptions, and data such ascolor profile among others. Creating and generating intermediate outputdata may further include operations such as compression, encoding,encryption, smoothing, segmentation, scaling and or color correction,among others. The image or images contained in an intermediate outputdata may be variously encoded and/or implemented with different imageformats and/or compression methods (e.g. JPEG, BMP, TIFF, JBIG etc orcombination). One preferred implementation is to generate or encode theoutput image in the intermediate output data with mixed raster content(MRC) description. The use of MRC in the data output process of presentinvention provides opportunities to improve the compression ratio byapplying different compression techniques to segmented elements in thecontent. In addition, MRC provides opportunities to maintain moreoriginal content information during the encoding process of the outputimage and, therefore, potentially improve output quality.

[0253] In step 1250, the client application 210 transmits intermediateoutput data to an output device 220 through local communication link240. The communication link may be implemented with wired or wirelesstechnologies and the transmission may include one or multiple sessions.

[0254] It should be recognized that FIG. 12A illustrates one example ofa client application process 1030 in the data output method 1002 ofpresent invention. Other implementations with more or less steps arepossible, and several additional optional processes not shown in FIG. 12may also be included in the client application process 1030. Use ofthese different variations, however, does not result in a departure fromthe scope of the present invention. As an example, an optionalauthentication step may be included when the selected output device 220provides service to a restricted group of users. Various authenticationprocedures may be added in step 1210 when client application 210 obtainsoutput device profile by communicating with an output device or anoutput controller. As another example, authentication procedures mayalso be implemented in step 1250 when the client application transmitsintermediate output data to one or more output devices 220 or outputcontrollers 230. A simple authentication may be implemented by, forexample, comparing the identity of an information apparatus 200 with anapproved control list of identities stored in the output device 220 oroutput controller 230. Other more complex authentication and encryptionschemes may also be used. Information such as user name, password, IDnumber, signatures, security keys (physical or digital), biometrics,fingerprints, voice among others, may be used separately or incombination as authentication means. Such identification and orauthentication information may be manually provided by user orautomatically detected by the selected output device or devices 220 oroutput controller 230. With successful authentication, a user may gainaccess to all or part of the services provided by the output device 220.The output device profile that the client application 210 obtains mayvary according to the type or quality of service requested ordetermined. If authentication fails, it is possible that a user may bedenied partially or completely access to the service. In this case, theuser may be provided with alternatives such as selecting another outputdevice 220 or alternative services.

[0255] Another optional process is that a user may be asked to providepayment or deposit or escrow before, during or after output service suchas step 1210 or 1250 with reference to FIG. 12. Examples of payment ordeposit may include cash, credit card, bankcard, charge card, smartcard, electronic cash, among others. The output controller 220 mayprovide payment calculation or transaction processing as optionalfeature sets of present invention.

[0256]FIG. 12B illustrates another exemplary client application outputprocess 1030 with which an information apparatus 200 can pervasively anduniversally output content to one or more output devices 220 associatedwith or equipped with an output controller 230 of present invention.

[0257] The process illustrated in FIG. 12B is similar to the processdescribed in FIG. 12A except that step 1210, obtaining output deviceprofile, is skipped. In this embodiment, the client application 210utilizes a set of hard-coded, standard or pre-defined output deviceparameters including rasterization parameters with which the clientapplication 210 can perform rasterization operation and other requiredimage processing functions. Users may be provided with the option ofchanging these parameters or inputting alternative parameters.Rasterization parameters include output size, output resolution, bitdepth, color space, color channels, scale factors etc. These pre-definedparameters typically comply with a specification or a standard. The samespecification and standard may also defined or describe at least partlythe intermediate output data. Predefined standard parameters can bestored in a file or profile in an information apparatus 200, an outputcontroller 230, and/or in an output device 220 for easy update orupgrade.

[0258] In client output process 1204, since the rasterization parametersare predefined, the client application 210 may not need to uploadprinter profiles from the selected output device 230. Consequently, notwo-way communication between the information apparatus 200 and theoutput device or devices 220 is necessary in this process 1204 whencompared with process 1202 illustrated in FIG. 12A. The clientapplication 210 performs rasterization operation 1225 based on standardand/or predefined parameters and generates a rasterized output imagewith predefined or standard properties of those rasterizationparameters. The resulting intermediate output data, which includes atleast one rasterized output image, is transmitted from the informationapparatus 200 to an output device 220 in step 1250 or to its associatedoutput controller 230 for rendering or output. The intermediate outputdata generated in process 1202 in general is less device dependentcompared to the intermediate output data generated in the process 1202shown in FIG. 12A. The output controller 230 included or associated withthe output device 220 may be preprogrammed to interpret the rasteroutput image, which includes properties or attributes that correspond tothose standard or predefined parameters.

[0259] The standard or predefined rasterization parameters may be hardcoded or programmed into the client application 210 and/or the outputcontroller 230. However, instead of hard coding those parameters, onetechnique to facilitate updates or changes is to store those standardparameters in a default file or profile. The standard or predefinedparameters contained in the file or profile can be retrieved andutilized by applications in an information apparatus 200 (e.g. clientapplication 210) and/or by applications or components in an outputdevice 220 or the output controller 230. In this way, any necessaryupdates, upgrades or required changes to those predefined or standardparameters can be easily accomplished by replacing or modifying the fileor profile instead of modifying or updating the program, application orcomponents in the information apparatus 200, output device 220 and/oroutput controller 230.

[0260] A client application process 1204 providing universal outputcapability to information apparatus 200 may include or utilize:

[0261] A client application 210 that obtains content (e.g. digitaldocument) intended for output.

[0262] A client application 210 that optionally obtains user preferences(in step 1220) through (1) user's input (automatic or manual) orselections or (2) based on preset preference or predefined defaults or(3) combination of the above.

[0263] A client application 210 that rasterizes content (in step 1230 or1225) according to pre-defined or standard rasterization parameters.

[0264] A client application 210 that generates intermediate output data(in step 1240) for rendering or output at an output device 220; theintermediate output data containing at least partially a rasterizedimage related to the content intended for output.

[0265] A client application 210 that transmits the intermediate outputdata to an output device 220 (in step 1250) for further processing andfinal output.

[0266] One advantage of the client output process 1204 of FIG. 12Bcompared to the process 1202 illustrated in FIG. 12A is that thegenerated intermediate output data is in general less device dependent.The device independent attribute allows the intermediate output data tobe more portable and acceptable to more output devices equipped orassociated with output controllers. Both data output processes (1202 and1204) enable universal output; allowing a user to install a singleclient application 210 or components in an information apparatus 200 toprovide output capability to more than one output device 220.

[0267]FIG. 13A illustrates one example of an output device process 1302and its associated raster imaging method of present invention. In thisoutput device process 1302, an output device 220 is capable of receivingan intermediate output data from an information apparatus 200. Theoutput device process 1302 and its operations may include or utilize:

[0268] An output device/system or output controller that receivesintermediate output data (in step 1300). The intermediate output dataincludes at least partially a raster output image describing at leastpart of the content for rendering at the output device 220 or system250.

[0269] An output device/system or output controller that interprets (instep 1310) the intermediate output data; in one preferred embodiment,the intermediate output data includes an output image utilizing one ormore MRC formats or components.

[0270] An output device/system or output controller that performs imageprocessing operation (in step 1320) on the raster image. The imageprocessing operation may include but not limited to image decompression,scaling, halftoning, color matching, among others.

[0271] An output device/system or output controller that converts and orgenerates (in step 1330) output-engine output data that is in a formator description suitable for input to an output engine (e.g. printerengine in case of a printer) included in an output device 220.

[0272] An output engine in an output device 220 that renders orgenerates a final output (e.g. the output-engine output data) in step1370.

[0273] The output device 220 or output system 250 may include an outputcontroller 230 internally or externally to assist the management andoperation of the output process 1302. As shown in FIG. 7, there are manypossible configurations and implementations of an output controller 230associated to an output device 220 Herein and after, output controller230 is regarded as an integral part of the output device to which it isattached. Hence, the following described output device operations may bepartially or completely performed by the output controller associatedwith it.

[0274] In step 1300, output device process 1302 is initiated by clientapplication 210 transmitting an intermediate output data to outputdevice 220 or output system 250. In step 1310, the output device 220reads and interprets the intermediate output data, containing at leastone raster output image relating to the content intended for output.During the reading and interpretation process 1310, the output device220 may include components that parse the intermediate output data andperform operations such as decompression, decoding, and decryption amongothers. The output image may be variously encoded and may include one ormore compression methods.

[0275] In the event that the method of image encoding includes MRCformat, then, in one example implementation, during decoding and mappingof the output image in step 1310, the lower resolution layer andinformation in an image that includes MRC may be mapped, scaled orinterpolated to a higher-resolution output image to produce a betterimage quality. Therefore, step 1310, in the event that the intermediateoutput data includes MRC component, each layer in an MRC image can bedecompressed, processed, mapped and combined into a single combinedoutput image layer. Step 1310 may also include scaling, color spacetransformation, and/or interpolation among others. In addition to thepossibility of mapping methods using different scaling and interpolationratio with different layers, another advantage of using MRC is thatsegmentation information contained in MRC can be utilized to applydifferent image processing and enhancement techniques to data indifferent layers of an MRC image in step 1320.

[0276] In step 1320, the output device 220 may further perform imageprocessing operations on the decoded output image. These imageprocessing operations may include, for example, color correction, colormatching, image segmentation, image enhancement, anti-aliasing, imagesmoothing, digital watermarking, scaling, interpolation, and halftoningamong others. The image processing operations 1320 may be combined oroperated concurrently with step 1310. For example, while each row,pixel, or portion of the image is being decoded and or decompressed,image processing operations 1320 is applied. In another implementation,the image processing 1320 may occur after the entire output image or alarge portion of the image has been decoded or decompressed.

[0277] If the intermediate output data includes MRC component, then instep 1320, there are additional opportunities to improve image quality.An image encoded in MRC contains segmented information that atraditional single layer image format does not usually have. As anexample, foreground can be in one layer, and background in another. Asanother example, chrominance information may be in one layer andluminance may be in another. This segmented information in MRC may beused to apply different or selective image processing methods andalgorithms to different layers or segments to enhance image quality orretain or recover image information. Different image processingtechniques or algorithms may include color matching, color correction,black generation, halftoning, scaling, interpolation, anti-aliasing,smoothing, digital watermarking etc. For example, one can applycalorimetric color matching to foreground information and perceptualcolor matching to background information or vice versa. As anotherexample, error diffusion halftoning can be applied to foreground andstochastic halftoning can be applied to background or vice versa. As yetanother example, bi-cubic interpolation can be applied to a layer andbi-linear or minimum distance interpolation can be applied to adifferent layer.

[0278] In step 1330, the output device 220 or the output controller 230may convert the processed image (e.g. halftoned) into a form acceptableto the output engine of output device 220. This conversion step isoptional, depending on the type, format and input requirement of aparticular output device engine (e.g. printer engine in case of aprinter). Different output engines may have different input raster imageinput requirements. As an example different output engines may requiredifferent input image formats, number of bits or bytes per pixel,compression or uncompressed form, or different color spaces (e.g. suchas RGB, CMY, CMYK, or any combination of Hi-Fi color such as green,orange, purple, red etc). Incoming raster image data can be encoded in arow, in a column, in multiple rows, in multiple columns, in a chunk, ina segment, or a combination at a time for sending the raster data to theoutput engine. In some cases, step 1330 may be skipped if the result ofstep 1320 is already in a form acceptable to the output device engine.In other cases, however, further conversion and or processing may berequired to satisfy the specific input requirement of a particularoutput device engine.

[0279] It is important to note that the above described processing fromstep 1310 to step 1330 may require one or more memory buffers totemporarily store processed results. The memory buffer can store or holda row, a column, a portion, or a chunk, of the output image in any ofthe steps described above. Storing and retrieving information into andfrom the memory buffer may be done sequentially, in an alternatingfashion, or in an interlaced or interleaved fashion among other possiblecombinations. Step 1310 to step 1330 operations can be partially orcompletely implemented with the output controller 230.

[0280] In step 1370, the output device engine included in the outputdevice 220 or output system 250 receives the output-engine output datagenerated in step 1330 or step 1320. The output-engine output data is ina form that satisfies the input requirements and attributes of theoutput engine, such as color space, color channel, bit depth, outputsize, resolution, etc. The output engine then takes this output-engineoutput data and outputs or renders the data content through its markingengine or display engine.

[0281] One advantage of data output method 1002 that includes outputdevice process 1302 is that it has less processing requirements on aninformation apparatus 200 compared to conventional process withreference to FIG. 1A, and therefore, enables more information apparatus200 with relatively lower processing power and memory space to haveoutput capability.

[0282] For example, some image processing functions, such as halftoning(e.g. error diffusion) may require substantial processing and computingpower. In data output process 1002 that includes output device process1302, halftoning is performed in step 1320 by an output device component(e.g. the output controller 230) included in the output device 220 orthe output system 250, not in the information apparatus 200; thereforereducing the computational requirements for the information apparatus200. Another advantage of data output 1302 is that the intermediateoutput data is less device dependent than the output data generated byconventional output method 102 with reference to FIG. 1A. The deviceindependence provides opportunity to allow a single driver orapplication in an information apparatus 200 to output intermediateoutput data to a plurality of output devices 220 that include outputcontrollers 230.

[0283] Some output devices 220 may contain a printer controller 410. Anexample of this type of output device or printer is a PostScript printeror PCL printer among others. FIG. 13B illustrates an example of anoutput device process 1304 with a printer that includes a printercontroller 410. As discussed in FIG. 1, a printer with a printercontroller requires input such as page description language (e.g.PostScript, PCL etc.), markup language (HTML, XML etc), special imageformat, special graphics format, or a combination, depending on the typeof the printer controller.

[0284] There are many printing system configurations for providing thedata output capability and process to a printer or a printing systemthat includes a printer controller. In one example, the existing printercontroller in the output device 220 may incorporate the feature setsprovided by the output controller to form a “combined controller” asdescribed previously with reference to FIGS. 7C and 7F. In anotherexample, the output controller 230 of present invention may be connectedsequentially or cascaded to an existing printer controller; the outputcontroller 230 can be internally installed (with reference to FIG. 7B)or externally connected (with reference to FIG. 7A) to the output device220. For output device 220 that includes a printer controller, theoutput controller 230 may simply decode the intermediate output data instep 1310 and then convert it into a form acceptable for input to theprinter controller in step 1350.

[0285] An output device process 1304 and operations for an output device220 or system 250 that includes a printer controller 410 may include orutilize:

[0286] An output controller 230 or components in an output device 220 orsystem 250 that receives an intermediate print data or output data (withreference to step 1300), the intermediate print data includes at least araster image related at least in part to the content for rendering atthe output device 220.

[0287] An output controller 230 or components in an output device 220 orsystem 250 that interprets the intermediate output data (with referenceto step 1310); in one preferred embodiment, the intermediate output dataincludes an output image utilizing one or more MRC format or components.

[0288] An output controller 230 or components in an output device 220 orsystem 250 that converts the intermediate output data into aprinter-controller print data (with reference to step 1350); theprinter-controller print data includes a format or language (e.g. PDL,PDF, HTML, XML etc.) that is acceptable or compatible to the inputrequirement of a printer controller.

[0289] A printer controller or components in an output device 220 orsystem 250 that receives a printer controller print data; the printercontroller may parse, interpret and further process (e.g. rasterization,scaling, image enhancement, color correction, color matching, halftoningetc.) and convert the printer-controller print data into aprinter-engine print data (with reference to step 1360); theprinter-engine print data comprising of a format or descriptionacceptable for input to a printer engine in the output device 220 or theoutput system 250.

[0290] A printer engine or components in an output device 220 or system250 that renders or generates a final output (with reference to step1370) with the input printer engine print data.

[0291] In output device process 1304, step 1300 (receiving intermediateoutput data) and step 1310 (interpret intermediate output data) areidentical to step 1300 and step 1310 in output device process 1302,which have been described in previous sections with reference to FIG.13A.

[0292] In step 1350, the output controller 230 converts the intermediateprint data into a printer-controller print data that is in a formcompatible or acceptable for input to a printer controller. For example,a printer controller may require as input a specific page descriptionlanguage (PDL) such as PostScript. The output controller 230 thencreates a PostScript file and embeds the output image generated orretrieved in step 1310 into the PostScript file. The output controller230 can also create and embed the output image from step 1310 into otherprinter controller print data formats, instructions or languages.

[0293] In step 1360, the printer controller receives printer-controllerprint data generated in step 1350 that includes an acceptable inputlanguage or format to the printer controller. The printer controller mayparse, interpret, and decode the input printer-controller print data.The printer controller may further perform raster image processingoperations such as rasterization, color correction, black generation,GCR, anti-aliasing, scaling, image enhancement, and halftoning amongothers on the output image. The printer controller may then generate aprinter-engine print data that is suitable for input to the printerengine. The type and or format of printer-engine print data may varyaccording to the requirement of a particular printer engine.

[0294] It is important to note that the above described process fromstep 1310 to step 1360 may require one or more memory buffer totemporarily store processed results. The memory buffer can store or holda row, a column, a portion, or a chunk, of the output image in any ofthe steps described above. Storing and retrieving information into andfrom the memory buffer may be done sequentially, alternated, or in aninterlaced or interleaved fashion among other possible combinations.Process and operations of step 1310 to step 1360 can be implemented withoutput controller 230.

[0295] In step 1370, the printer engine included in the output device220 or output system 250 generates or renders the final output based onthe printer-engine print data generated in step 1360. For example, theprinter-engine print data may be in CMY, CMYK, and RGB etc, and this maybe in one or more bits per pixel format, satisfying the size andresolution requirement of the printer engine. The printer engineincluded the output device 220 may take this print data and generate orrender an output page through its marking engine.

[0296] Having described and illustrated the principles of our inventionwith reference to an illustrated embodiment, it will be recognized thatthe illustrated embodiment can be modified in arrangement and detailwithout departing from such principles. In view of the many possibleembodiments to which the principles of our invention may be applied, itshould be recognized that the detailed embodiments are illustrative onlyand should not be taken as limiting the scope of our invention. Rather,I claim as my invention all such embodiments as may come within thescope of the following claims and equivalents thereto.

[0297] Unless the context indicates otherwise, a reference in a claim tothe number of instances of an element, be it a reference to one instanceor more than one instance, requires at least the stated number ofinstances of the element but is not intended to exclude from the scopeof the claim a structure or method having more instances of that elementthan stated. Specifically, but without limitation, a reference in aclaim to an or one output device or system, to an or one image, or to aor one rasterization parameter is not intended to exclude from the scopeof the claim a structure or method having, including, employing orsupplying two or more output devices or system, images or rasterizationparameters.

1. An information apparatus for managing outputting of content to anoutput device, the content accessible at least partly by the informationapparatus, the information apparatus comprising: a communication unit tocommunicate with the output device, a user interface for interactingwith a user; means for establishing a communication channel between theinformation apparatus and the output device; means for receiving overthe communication channel one or more components associated with theoutput device enabling the content to be rendered by the output device;means for conforming at least part of the content into one or moreoutput images with said one or more components; means for generating anintermediate output data including said one or more output images andfor rendering by the output device; and means for delivering theintermediate output data to the output device for rendering.
 2. Anapparatus according to claim 1, for managing outputting of content to anoutput device selected from a plurality of output devices, wherein thecommunication unit communicates with said plurality of output devices,and the apparatus includes means to select an output device from saidplurality of output devices.
 3. The apparatus according to claim 1 inwhich the one or more components includes one or more of a rasterizationvector, a price indicator, an availability indicator, a statusindicator, an output data format indicator, and a quality of serviceindicator.
 4. The apparatus according to claim 1 in which thecommunication channel includes a wireless communication channel.
 5. Theapparatus according to claim 1 further comprising means for sendingpayment information over the communication channel as compensation forthe rendering of the content by the output device.
 6. An informationapparatus for managing the outputting of content to an output device,the content accessible at least partly by the information apparatus, theinformation apparatus comprising: a communication unit to communicatewith one or more output devices; a user interface for interacting with auser; means for obtaining one or more device dependent attributesassociated with the output device; means for conforming at least part ofthe content into one or more output images with said one or more devicedependent attributes, at least part of said one or more output imagesincluding mixed raster content encoding; means for generating anintermediate output data including said one or more output images; andmeans for delivering the intermediate output data to the output devicefor rendering.
 7. The apparatus according to claim 6 in which the meansfor obtaining one or more device dependent attributes includes means forobtaining from one or more sources that includes a user input, a networkserver, a default value stored in the information apparatus, and fromthe output device,
 8. The apparatus according to claim 6 furthercomprising means for establishing a wireless communication with one ormore output devices.
 9. The apparatus according to claim 8 furthercomprising means for obtaining over the communication channel an outputdevice profile that includes the device dependent attributes.
 10. Theapparatus according to claim 8 further comprising means for sendingpayment information over the communication channel as compensation forthe rendering of the content by the output device.
 11. The apparatusaccording to claim 6 in which the means for conforming includes meansfor conforming at least part of the content into at least one outputimage by one or more of a rasterization operation, a scaling operation,an interpolation operation, and a compression operation.
 12. Theapparatus according to claim 6 in which the mixed raster content dataincludes at least a foreground layer.
 13. An information apparatuscapable of outputting content to an output device; the contentaccessible at least partly by the information apparatus, the informationapparatus comprising: a communication unit to communicate with an outputdevice; a user interface for interacting with a user; means forestablishing a communication channel between the information apparatusand the output device with short range wireless communication; means forconforming at least part of the content into at least one output imagewith at least one predefined standard rasterization parameter values;means for generating an intermediate output data including the one ormore output image, the intermediate output data being at least partlydevice independent; and means for delivering via the establishedcommunication channel the intermediate output data to the output devicefor rendering.
 14. The apparatus according to claim 13 wherein thecommunication unit communicates with a plurality of output devices andthe information apparatus includes means for selecting an output deviceof said plurality to receive the intermediate output data.
 15. Theapparatus according to claim 13 further comprising means for obtainingover the communication channel an output device profile.
 16. Theapparatus according to claim 13 further comprising means for obtainingover the communication channel information related to the intermediateoutput data format.
 17. The apparatus according to claim 13 furthercomprising means for sending payment information over the communicationchannel as compensation for the rendering of the content by the outputdevice.
 18. The apparatus according to claim 13 in which the predefinedstandard rasterization values is included in the information apparatus.19. The apparatus according to claim 13 in which the means forconforming includes means for performing one or more of a rasterizationoperation, a scaling operation, an interpolation operation, and acompression operation.
 20. The apparatus according to claim 13 in whichthe means for conforming conforms at least part of the content into anoutput image that includes mixed raster content encoding.